Sort agenda entries by remaining effort by default
This might be slow and buggy, but let's keep it for now.
This commit is contained in:
parent
1f9e032a1a
commit
0a14f01729
10
init.el
10
init.el
|
@ -731,6 +731,7 @@
|
||||||
db/org-clock-in-work-task
|
db/org-clock-in-work-task
|
||||||
db/show-current-org-task
|
db/show-current-org-task
|
||||||
db/org-remaining-effort-of-current-item
|
db/org-remaining-effort-of-current-item
|
||||||
|
db/org-cmp-remaining-effort
|
||||||
org-dblock-write:db/org-workload-report
|
org-dblock-write:db/org-workload-report
|
||||||
endless/org-ispell
|
endless/org-ispell
|
||||||
db/org-agenda-list-deadlines
|
db/org-agenda-list-deadlines
|
||||||
|
@ -1101,10 +1102,11 @@
|
||||||
:init (setq org-agenda-include-diary t
|
:init (setq org-agenda-include-diary t
|
||||||
org-agenda-span 1
|
org-agenda-span 1
|
||||||
org-agenda-insert-diary-strategy 'top-level
|
org-agenda-insert-diary-strategy 'top-level
|
||||||
org-agenda-sorting-strategy '((agenda time-up priority-down effort-up category-keep)
|
org-agenda-sorting-strategy '((agenda time-up priority-down user-defined-up category-keep)
|
||||||
(todo priority-down effort-up category-keep)
|
(todo priority-down user-defined-up category-keep)
|
||||||
(tags priority-down effort-up category-keep)
|
(tags priority-down user-defined-up category-keep)
|
||||||
(search priority-down effort-up category-keep))
|
(search priority-down user-defined-up category-keep))
|
||||||
|
org-agenda-cmp-user-defined #'db/org-cmp-remaining-effort
|
||||||
org-agenda-window-setup 'current-window
|
org-agenda-window-setup 'current-window
|
||||||
org-agenda-restore-windows-after-quit t
|
org-agenda-restore-windows-after-quit t
|
||||||
org-agenda-compact-blocks nil
|
org-agenda-compact-blocks nil
|
||||||
|
|
|
@ -448,6 +448,33 @@ If no effort is specified, return nil."
|
||||||
(max 0 (- (org-duration-to-minutes effort)
|
(max 0 (- (org-duration-to-minutes effort)
|
||||||
(db/org-clocked-time-for-current-item)))))))
|
(db/org-clocked-time-for-current-item)))))))
|
||||||
|
|
||||||
|
(defun db/org-cmp-remaining-effort (a b)
|
||||||
|
"Compare the remaining efforts of Org items A and B.
|
||||||
|
|
||||||
|
A and B are strings only, but their corresponding Org items are
|
||||||
|
accessible via the `org-hd-marker' text property."
|
||||||
|
(let* ((def (if org-agenda-sort-noeffort-is-high 32767 -1))
|
||||||
|
(ma (or (get-text-property 1 'org-marker a)
|
||||||
|
(get-text-property 1 'org-hd-marker a)))
|
||||||
|
(mb (or (get-text-property 1 'org-marker b)
|
||||||
|
(get-text-property 1 'org-hd-marker b)))
|
||||||
|
(ea (or (and (markerp ma)
|
||||||
|
(marker-buffer ma)
|
||||||
|
(org-with-point-at ma
|
||||||
|
(--if-let (db/org-remaining-effort-of-current-item)
|
||||||
|
(org-duration-to-minutes it)
|
||||||
|
0)))
|
||||||
|
def))
|
||||||
|
(eb (or (and (markerp mb)
|
||||||
|
(marker-buffer mb)
|
||||||
|
(org-with-point-at mb
|
||||||
|
(--if-let (db/org-remaining-effort-of-current-item)
|
||||||
|
(org-duration-to-minutes it)
|
||||||
|
0)))
|
||||||
|
def)))
|
||||||
|
(cond ((> ea eb) +1)
|
||||||
|
((< ea eb) -1))))
|
||||||
|
|
||||||
|
|
||||||
;;; Task Management
|
;;; Task Management
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue