ADD errors for meetings with errors

This commit is contained in:
Nathan Dwarshuis 2021-09-23 23:16:24 -04:00
parent 2c7c5640f4
commit 2698e2d192
2 changed files with 52 additions and 2 deletions

View File

@ -3061,6 +3061,12 @@ original function being advised and ARGS are the arguments."
(org-x-headline-is-iterator-without-archive-target-p))
,(nd/org-def-super-agenda-pred "Future Creation Timestamp"
(org-x-headline-is-task-with-future-creation-timestamp-p))
,(nd/org-def-super-agenda-pred "Unscheduled Meetings"
(org-x-headline-is-unscheduled-meeting-p))
,(nd/org-def-super-agenda-pred "Meeting without Effort"
(org-x-headline-is-meeting-without-effort-p))
,(nd/org-def-super-agenda-pred "Meeting without Agenda"
(org-x-headline-is-meeting-without-agenda-p))
(:discard (:anything t))))))))
("m"
@ -3070,6 +3076,7 @@ original function being advised and ARGS are the arguments."
- org-x-tag-refile
+ org-x-tag-meeting)
((org-agenda-overriding-header "Meetings")
(org-agenda-sorting-strategy '(time-up scheduled-down))
(org-super-agenda-groups
',(nd/org-def-super-agenda-automap
(-when-let (ts (org-x--headline-get-property-epoch-time "SCHEDULED"))

View File

@ -674,12 +674,55 @@ property."
(org-x-headline-is-created-in-future)
t)))
(defun org-x-headline-is-task-meeting ()
(defun org-x-headline-is-meeting-p ()
"Return t if current headline is a meeting."
(-when-let (keyword (org-x-headline-is-task-p))
(and (not (member keyword org-x-done-keywords))
(org-x-headline-has-tag-p org-x-tag-meeting)
(org-x-headline-is-scheduled-p)
t)))
(defun org-x-headline-is-unscheduled-meeting-p ()
"Return t if current headline is an unscheduled meeting."
(-when-let (keyword (org-x-headline-is-task-p))
(and (not (member keyword org-x-done-keywords))
(org-x-headline-has-tag-p org-x-tag-meeting)
(not (org-x-headline-is-scheduled-p))
t)))
(defun org-x-headline-is-meeting-without-effort-p ()
"Return t if current headline is a meeting with no effort property."
(-when-let (keyword (org-x-headline-is-task-p))
(and (not (member keyword org-x-done-keywords))
(org-x-headline-has-tag-p org-x-tag-meeting)
(not (org-entry-get nil "Effort" nil))
t)))
(defun org-x-headline-get-meeting-agenda-items ()
"Return the agenda items for the current headline.
If none are present, return nil. If \"NA\" is present, return
'none'. Agenda items are in the 'AGENDA_ITEMS' drawer and should
actually be items (that is part of a plain-list node)"
(-when-let (n (-some->> (org-ml-parse-this-headline)
(org-ml-headline-get-section)
(--find (and (org-ml-is-type 'drawer it)
(equal (org-ml-get-property :drawer-name it)
"AGENDA_ITEMS")))
(org-ml-get-children)
(car)))
(let ((y (org-ml-get-type n)))
(cond
((eq y 'plain-list)
(org-ml-get-children n))
((and (eq y 'paragraph)
(equal "NA" (s-trim (car (org-ml-get-children n)))))
'none)))))
(defun org-x-headline-is-meeting-without-agenda-p ()
"Return t if current headline is a meeting with no agenda."
(-when-let (keyword (org-x-headline-is-task-p))
(and (not (member keyword org-x-done-keywords))
(org-x-headline-has-tag-p org-x-tag-meeting)
(not (org-x-headline-get-meeting-agenda-items))
t)))
;; (defun org-x-is-todo-child (keyword)