Compare commits

...

2 Commits

Author SHA1 Message Date
2daf19249c
Add experimental NOT_BEFORE filter to custom agenda views
This is supposed to be the dual to DEADLINE, and shall someday release the
SCHEDULED property from its semantics to not display things before a certain
date (then the SCHEDULED property can be solely used to mean that things should
be done on a specific date).

However, the NOT_BEFORE property needs some more consistency checks, as
otherwise items that have a NOT_BEFORE property that's too far in the future may
be overlooked.  Is this something for the monthly review?
2022-12-10 10:48:30 +01:00
24634132d8
Unify custom agendas on how to ignore future items
Always use property matches for this, as it's more direct to me to understand
what the actual search criteria are (even if these are a bit slower).  Also use
`<today>` instead of `<now>` to ignore the time part and always fall back to
00:00 time; this should avoid intra-day changes of whether an item appears on a
list or not.
2022-12-10 10:38:05 +01:00

35
init.el
View File

@ -1158,18 +1158,16 @@ respectively."
""
((org-agenda-entry-types '(:timestamp :sexp :scheduled :deadline))
(org-deadline-warning-days 0)))
(tags-todo "TODO={CONT\\|ATTN}-HOLD-TIMESTAMP>\"<now>\""
((org-agenda-overriding-header "Things to do next (Task shortlist and WIP, TODO ∈ {CONT,ATTN}, not scheduled now or in the future)")
(org-agenda-todo-ignore-scheduled 0)))
(tags-todo "TODO={CONT\\|ATTN}-HOLD-TIMESTAMP>=\"<today>\"-SCHEDULED>=\"<today>\"-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Things to do next (Task shortlist and WIP, TODO ∈ {CONT,ATTN}, not scheduled now or in the future)")))
(db/org-agenda-list-deadlines
""
((org-agenda-overriding-header "Deadlines")
(org-agenda-sorting-strategy '(deadline-up priority-down))
(org-deadline-warning-days 30)))
(tags-todo "TODO<>\"CONT\"-HOLD-SOMEWHEN-DATE-WAIT-TEMPLATE"
(tags-todo "TODO<>\"CONT\"-HOLD-SOMEWHEN-DATE-WAIT-TEMPLATE-SCHEDULED>=\"<today>\"-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Next Actions List (not WIP, not scheduled now or in the future)")
(org-tags-match-list-sublevels t)
(org-agenda-todo-ignore-scheduled 0)))))
(org-tags-match-list-sublevels t)))))
("B" "Backlog"
((tags-todo "-HOLD-SOMEWHEN-DATE-PERIODIC-TEMPLATE"
@ -1181,15 +1179,16 @@ respectively."
("C" "Checks"
((tags "TODO=\"\"-HOLD-SOMEWHEN-DATE-PERIODIC-NOTE-NOP-TOPIC-TEMPLATE-GOAL"
((org-agenda-overriding-header "Goals (i.e., complex tasks) not marked with GOAL")))))
((org-agenda-overriding-header "Goals (i.e., complex tasks) not marked with GOAL")))
;; TODO: add check that NOT_BEFORE is always before DEADLINE and before SCHEDULED
;; TODO: add check for items whose NOT_BEFORE is too far in the future
))
("U" "Unsupervised (Waiting, Missed Appointments, Hold)"
((tags-todo "WAIT-HOLD-SOMEWHEN"
((org-agenda-overriding-header "Waiting For List")
(org-agenda-todo-ignore-scheduled 0)))
(tags-todo "DATE"
((org-agenda-overriding-header "Missed appointments (DATEs with timestamp in the past)")
(org-agenda-todo-ignore-timestamp 0)))
((tags-todo "WAIT-HOLD-SOMEWHEN-SCHEDULED>=\"<today>\"-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Waiting For List")))
(tags-todo "DATE-TIMESTAMP>=\"<today>\""
((org-agenda-overriding-header "Missed appointments (DATEs with timestamp in the past)")))
(tags "REFILE"
((org-agenda-files (list db/org-default-refile-file))
(org-agenda-overriding-header "Things to refile (make it empty!)")))
@ -1198,9 +1197,9 @@ respectively."
("S" "Somewhen (Do if nothing else to do, i.e., personal backlog)"
((tags "TAGS={SOMEWHEN}+TODO=\"\"-TAGS={NOP\\|TOPIC}-PERIODIC-DATE-SCHEDULED>=\"<+0d>\""
((tags "TAGS={SOMEWHEN}+TODO=\"\"-TAGS={NOP\\|TOPIC}-PERIODIC-DATE-SCHEDULED>=\"<today>\"-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Open Tasks to do SOMEWHEN (no TODO keyword, no PERIODIC, no DATE, no now or future SCHEDULED)")))
(tags-todo "SOMEWHEN"
(tags-todo "SOMEWHEN-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Things To Do SOMEWHEN")
(org-agenda-todo-ignore-with-date t)
(org-tags-match-list-sublevels nil)))))
@ -1208,11 +1207,11 @@ respectively."
("P" "Current Projects and Topics"
((stuck ""
((org-agenda-overriding-header "Stuck Complex Tasks")))
(tags "TAGS={NOTE}-TODO={CANC\\|DONE\\|MRGD}-HOLD-NOP-SCHEDULED>=\"<+0d>\""
(tags "TAGS={NOTE}-TODO={CANC\\|DONE\\|MRGD}-HOLD-NOP-SCHEDULED>=\"<today>\"-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Project Notes (items explicitly tagged with NOTE but not NOP, not scheduled now or in the future)")))
(tags "TAGS={TOPIC}-TODO={DONE\\|CANC\\|MRGD}-SCHEDULED>=\"<+0d>\"-HOLD-WAIT"
(tags "TAGS={TOPIC}-TODO={DONE\\|CANC\\|MRGD}-SCHEDULED>=\"<today>\"-HOLD-WAIT-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Topics")))
(tags "TAGS={PERIODIC}-TODO={DONE\\|CANC\\|MRGD}-HOLD-SCHEDULED>=\"<+0d>\"-HOLD-WAIT"
(tags "TAGS={PERIODIC}-TODO={DONE\\|CANC\\|MRGD}-HOLD-SCHEDULED>=\"<today>\"-HOLD-WAIT-NOT_BEFORE>=\"<today>\""
((org-agenda-overriding-header "Periodic Projects (PERIODIC, not scheduled in the future, not done, not on hold)")))))
("W" "Weekly Review"