From 9b8d3d6d445c22062e0d4e3badb691aca01ab798 Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sun, 12 Feb 2023 13:49:43 +0100 Subject: [PATCH] Ignore duplicates when computing daily agenda effort --- site-lisp/db-org.el | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/site-lisp/db-org.el b/site-lisp/db-org.el index ac6d074..6bf448e 100644 --- a/site-lisp/db-org.el +++ b/site-lisp/db-org.el @@ -198,11 +198,15 @@ timestamps (appointments), and deadlines (assuming they are only shown because they are due)." (let (total) (save-excursion - (while (< (point) limit) - (when (member (org-get-at-bol 'type) - '("scheduled" "past-scheduled" "timestamp" "deadline" "block")) - (push (org-entry-get (org-get-at-bol 'org-hd-marker) "Effort") total)) - (forward-line))) + (let (already-seen) + (while (< (point) limit) + (when (member (org-get-at-bol 'type) + '("scheduled" "past-scheduled" "timestamp" "deadline" "block")) + (let ((item-id (org-with-point-at (org-get-at-bol 'org-hd-marker) (org-id-get-create)))) + (unless (member item-id already-seen) + (push (org-entry-get (org-get-at-bol 'org-hd-marker) "Effort") total) + (push item-id already-seen)))) + (forward-line)))) (org-duration-from-minutes (cl-reduce #'+ (mapcar #'org-duration-to-minutes