From d9bf64f064565001a54732d1e95f69606adf11b6 Mon Sep 17 00:00:00 2001 From: Ihor Radchenko Date: Tue, 22 Mar 2022 17:25:14 +0800 Subject: [PATCH] org-agenda: Match timestamps inside node properties * lisp/org-agenda.el (org-agenda-get-timestamps): Use `org-at-timestamp-p' instead of org-element to check if at valid timestamp. Agenda should consider timestamps inside node properties even though they are not parsed by org-element. * testing/lisp/test-org-agenda.el (test-org-agenda/property-timestamp): Add new test checking active timestamp inside property drawer. * testing/examples/agenda-file.org (test timestamp inside properties): Add heading for `test-org-agenda/property-timestamp'. Reported in https://list.orgmode.org/06d301d83d9e$f8b44340$ea1cc9c0$@tomdavey.com --- lisp/org-agenda.el | 2 +- testing/examples/agenda-file.org | 4 ++++ testing/lisp/test-org-agenda.el | 15 +++++++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 3f7804f78..9f13f0749 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -5732,7 +5732,7 @@ displayed in agenda view." (org-before-first-heading-p) (and org-agenda-include-inactive-timestamps (org-at-clock-log-p)) - (not (eq 'timestamp (org-element-type (org-element-context))))) + (not (org-at-timestamp-p 'agenda))) (throw :skip nil)) (org-agenda-skip)) (let* ((pos (match-beginning 0)) diff --git a/testing/examples/agenda-file.org b/testing/examples/agenda-file.org index 5c42cc579..5e5bb86e9 100644 --- a/testing/examples/agenda-file.org +++ b/testing/examples/agenda-file.org @@ -16,3 +16,7 @@ SCHEDULED: <2022-01-03 Mon> #+begin_example SCHEDULED: <2022-01-03 Mon> #+end_example +* test timestamp inside properties +:PROPERTIES: +:CREATED: <2022-03-22 Tue> +:END: diff --git a/testing/lisp/test-org-agenda.el b/testing/lisp/test-org-agenda.el index f4cf5788b..455b82e19 100644 --- a/testing/lisp/test-org-agenda.el +++ b/testing/lisp/test-org-agenda.el @@ -106,6 +106,21 @@ See https://list.orgmode.org/20220101200103.GB29829@itccanarias.org/T/#t." (should (= 2 (count-lines (point-min) (point-max))))) (org-test-agenda--kill-all-agendas)) +(ert-deftest test-org-agenda/property-timestamp () + "Match timestamps inside property drawer. +See https://list.orgmode.org/06d301d83d9e$f8b44340$ea1cc9c0$@tomdavey.com" + (cl-assert (not org-agenda-sticky) nil "precondition violation") + (cl-assert (not (org-test-agenda--agenda-buffers)) + nil "precondition violation") + (let ((org-agenda-span 'day) + (org-agenda-files `(,(expand-file-name "examples/agenda-file.org" + org-test-dir)))) + (org-agenda-list nil "<2022-03-22 Tue>") + (set-buffer org-agenda-buffer-name) + (message "%s" (buffer-string)) + (should (= 4 (count-lines (point-min) (point-max))))) + (org-test-agenda--kill-all-agendas)) + (ert-deftest test-org-agenda/set-priority () "One informative line in the agenda. Check that org-agenda-priority updates the agenda." (cl-assert (not org-agenda-sticky) nil "precondition violation")