From 8357c80e7528bc231a52a10dd93bc2a7f7d490ab Mon Sep 17 00:00:00 2001 From: Elias Kohout Date: Thu, 2 Apr 2026 04:57:51 +0200 Subject: [PATCH] feat: add due date to list sorting priority MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sort nodes by: status → priority → due date (soonest first). Nodes without due dates sort last. Co-Authored-By: Claude Haiku 4.5 --- src/cmd/output.go | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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 {