fixed some gtd commands

This commit is contained in:
ndwarshuis 2019-04-10 00:34:45 -04:00
parent 0dfc9c0282
commit c87924d8fa
1 changed files with 17 additions and 11 deletions

View File

@ -2195,7 +2195,7 @@ By default I want block agendas to sort based on the todo keyword (with NEXT bei
#+END_SRC #+END_SRC
***** custom commands ***** custom commands
These agenda commands are the center of the gtd workflow. Some are slower than dirt but that's ok becuase the load times are far less than the that I would waste rifling through each org file trying to find a task. These agenda commands are the center of the gtd workflow.
#+BEGIN_SRC emacs-lisp #+BEGIN_SRC emacs-lisp
(defmacro nd/org-x-mk-skip-function (&rest body) (defmacro nd/org-x-mk-skip-function (&rest body)
"Return a skip function with BODY. "Return a skip function with BODY.
@ -2298,11 +2298,11 @@ original org entry before executing BODY."
(:invalid-todostate "0. Invalid TODO State") (:invalid-todostate "0. Invalid TODO State")
(:undone-complete "0. Undone Complete") (:undone-complete "0. Undone Complete")
(:done-incomplete "0. Done Incomplete") (:done-incomplete "0. Done Incomplete")
(:stck "0. Stuck") (:stuck "0. Stuck")
(:wait "1. Wait") (:wait "1. Wait")
(:held "2. Held") (:held "2. Held")
(:actv "3. Active") (:active "3. Active")
(:inrt "4. Inert") (:inert "4. Inert")
(t "5. Other")))))))))) (t "5. Other"))))))))))
("i" ("i"
@ -2425,6 +2425,8 @@ original org entry before executing BODY."
,(nd/org-x-mk-super-agenda-pred ,(nd/org-x-mk-super-agenda-pred
(and (org-x-is-todoitem-p) (and (org-x-is-todoitem-p)
(org-x-has-discontinuous-parent)))) (org-x-has-discontinuous-parent))))
;; TODO this is redundant, only thing this checks is
;; project headers
(:name "Done Unclosed" :pred (:name "Done Unclosed" :pred
,(nd/org-x-mk-super-agenda-pred ,(nd/org-x-mk-super-agenda-pred
(let ((keyword (org-x-is-todoitem-p))) (let ((keyword (org-x-is-todoitem-p)))
@ -2458,17 +2460,16 @@ original org entry before executing BODY."
(cond (cond
;; skip all non-archivable projects ;; skip all non-archivable projects
((and keyword ((and keyword
(org-x-headline-has-children 'org-x-is-todoitem-p) (org-x-is-project-p)
(not (eq :arch (org-x-get-project-status)))) (not (eq :archivable (org-x-get-project-status))))
(org-x-skip-subtree)) (org-x-skip-subtree))
;; skip all project tasks ;; skip all project tasks
((and keyword ((and keyword (org-x-is-project-task-p))
(org-x-headline-has-parent 'org-x-is-todoitem-p))
(org-x-skip-heading)) (org-x-skip-heading))
;; skip all tasks not marked done or archivable ;; skip all tasks not marked done or archivable
((and keyword ((and keyword
(not (and (member keyword org-done-keywords) (org-x-is-task-p)
(org-x-is-archivable-heading-p)))) (not (eq :archivable (org-x-task-status))))
(org-x-skip-heading)) (org-x-skip-heading))
;; skip all non-todoitems that are not stale ;; skip all non-todoitems that are not stale
((and (not keyword) ((and (not keyword)
@ -2479,9 +2480,14 @@ original org entry before executing BODY."
`((:name "Atomic Tasks" :pred `((:name "Atomic Tasks" :pred
,(nd/org-x-mk-super-agenda-pred ,(nd/org-x-mk-super-agenda-pred
(org-x-is-atomic-task-p))) (org-x-is-atomic-task-p)))
(:name "Toplevel Projects" :pred
,(nd/org-x-mk-super-agenda-pred
(and (not (org-x-headline-has-parent #'org-x-is-todoitem-p))
(org-x-is-project-p))))
(:name "Projects" :pred (:name "Projects" :pred
,(nd/org-x-mk-super-agenda-pred ,(nd/org-x-mk-super-agenda-pred
(org-x-is-project-p))) (and (org-x-headline-has-parent #'org-x-is-todoitem-p)
(org-x-is-project-p))))
(:name "Appointments" :anything))))))))) (:name "Appointments" :anything)))))))))
#+END_SRC #+END_SRC
** gtd next generation ** gtd next generation