Compare commits
3 Commits
bef3a482f3
...
866f652c4b
Author | SHA1 | Date |
---|---|---|
Daniel - | 866f652c4b | |
Daniel - | 0a14f01729 | |
Daniel - | 1f9e032a1a |
19
init.el
19
init.el
|
@ -730,6 +730,8 @@
|
||||||
db/org-clock-in-home-task
|
db/org-clock-in-home-task
|
||||||
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-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
|
||||||
|
@ -1100,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
|
||||||
|
@ -1156,10 +1159,10 @@
|
||||||
"")
|
"")
|
||||||
|
|
||||||
org-agenda-prefix-format
|
org-agenda-prefix-format
|
||||||
'((agenda . "%11s%?-12t%-4e ")
|
'((agenda . "%11s%?-12t%-4(db/org-remaining-effort-of-current-item) ")
|
||||||
(todo . "%-8c%-4e ")
|
(todo . "%-8c%-4(db/org-remaining-effort-of-current-item) ")
|
||||||
(tags . "%-8c%-4e ")
|
(tags . "%-8c%-4(db/org-remaining-effort-of-current-item) ")
|
||||||
(search . "%-8c%-4e "))
|
(search . "%-8c%-4(db/org-remaining-effort-of-current-item) "))
|
||||||
|
|
||||||
org-agenda-custom-commands
|
org-agenda-custom-commands
|
||||||
`(("A" "Main Agenda"
|
`(("A" "Main Agenda"
|
||||||
|
|
|
@ -204,7 +204,9 @@ shown because they are due)."
|
||||||
'("scheduled" "past-scheduled" "timestamp" "deadline" "block"))
|
'("scheduled" "past-scheduled" "timestamp" "deadline" "block"))
|
||||||
(let ((item-id (org-with-point-at (org-get-at-bol 'org-hd-marker) (org-id-get-create))))
|
(let ((item-id (org-with-point-at (org-get-at-bol 'org-hd-marker) (org-id-get-create))))
|
||||||
(unless (member item-id already-seen)
|
(unless (member item-id already-seen)
|
||||||
(push (org-entry-get (org-get-at-bol 'org-hd-marker) "Effort") total)
|
(push (org-with-point-at (org-get-at-bol 'org-hd-marker)
|
||||||
|
(db/org-remaining-effort-of-current-item))
|
||||||
|
total)
|
||||||
(push item-id already-seen))))
|
(push item-id already-seen))))
|
||||||
(forward-line))))
|
(forward-line))))
|
||||||
(org-duration-from-minutes
|
(org-duration-from-minutes
|
||||||
|
@ -425,21 +427,52 @@ is clocked in."
|
||||||
The remaining effort is computed as the planned effort minus the
|
The remaining effort is computed as the planned effort minus the
|
||||||
already clocked time. If this result is negative, return zero.
|
already clocked time. If this result is negative, return zero.
|
||||||
|
|
||||||
If no effort is specified, return nil."
|
If no effort is specified, return an empty string."
|
||||||
|
|
||||||
(if (derived-mode-p 'org-agenda-mode)
|
(if (derived-mode-p 'org-agenda-mode)
|
||||||
|
|
||||||
;; XXX: is this the right way to do it?
|
(if-let ((hd-marker (org-get-at-bol 'org-hd-marker)))
|
||||||
(org-agenda-with-point-at-orig-entry
|
;; `org-hd-marker' is set, there is some Org item that corresponds to
|
||||||
nil (db/org-remaining-effort-of-current-item))
|
;; this line. Get the remaining effort from there.
|
||||||
|
(org-with-point-at hd-marker
|
||||||
|
(db/org-remaining-effort-of-current-item))
|
||||||
|
;; We are at some special item in the Org agenda (e.g. some diary
|
||||||
|
;; entry), just show nothing.
|
||||||
|
"")
|
||||||
|
|
||||||
(unless (derived-mode-p 'org-mode)
|
(unless (derived-mode-p 'org-mode)
|
||||||
(user-error "Not in Org mode buffer, aborting"))
|
(user-error "Not in Org mode buffer, aborting"))
|
||||||
|
|
||||||
(when-let ((effort (org-entry-get (point) "Effort")))
|
(if-let ((effort (org-entry-get (point) "Effort")))
|
||||||
(org-duration-from-minutes
|
(org-duration-from-minutes
|
||||||
(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
|
||||||
|
(org-duration-to-minutes ; this is inefficient
|
||||||
|
(db/org-remaining-effort-of-current-item))))
|
||||||
|
def))
|
||||||
|
(eb (or (and (markerp mb)
|
||||||
|
(marker-buffer mb)
|
||||||
|
(org-with-point-at mb
|
||||||
|
(org-duration-to-minutes
|
||||||
|
(db/org-remaining-effort-of-current-item))))
|
||||||
|
def)))
|
||||||
|
(cond ((> ea eb) +1)
|
||||||
|
((< ea eb) -1))))
|
||||||
|
|
||||||
|
|
||||||
;;; Task Management
|
;;; Task Management
|
||||||
|
|
Loading…
Reference in New Issue