diff --git a/src/cmd/output.go b/src/cmd/output.go index c5b49d5..29108b6 100644 --- a/src/cmd/output.go +++ b/src/cmd/output.go @@ -76,7 +76,21 @@ func PrintNodes(w io.Writer, svc service.NodeService, nodes []*models.Node, json if si != sj { return statusRanks[si] > statusRanks[sj] } - return prioRanks[nodes[i].GetProperty("prio")] > prioRanks[nodes[j].GetProperty("prio")] + pi, pj := prioRanks[nodes[i].GetProperty("prio")], prioRanks[nodes[j].GetProperty("prio")] + if pi != pj { + return pi > pj + } + di, dj := nodes[i].DueDate, nodes[j].DueDate + if di == nil && dj == nil { + return false + } + if di == nil { + return false + } + if dj == nil { + return true + } + return di.Before(dj.Time) // soonest due date first }) for _, n := range nodes {