diff --git a/org-ql-view.el b/org-ql-view.el index 5889a567..a4579846 100644 --- a/org-ql-view.el +++ b/org-ql-view.el @@ -904,6 +904,8 @@ return an empty string." (file-name-sans-extension (file-name-nondirectory buffer-file-name)))))) "")) + (effort-string (org-element-property (intern (concat ":" (upcase org-effort-property))) element)) + (effort (when effort-string (org-duration-to-minutes effort-string))) (priority-string (-some->> (org-element-property :priority element) (char-to-string) (format "[#%s]") @@ -926,6 +928,9 @@ return an empty string." 'org-category category 'todo-state todo-keyword 'tags tag-list + 'txt (org-add-props string nil + 'effort effort-string + 'effort-minutes effort) 'org-habit-p habit-property))))) (defun org-ql-view--add-faces (element) diff --git a/tests/test-org-ql.el b/tests/test-org-ql.el index 8d2b84c0..ae467885 100644 --- a/tests/test-org-ql.el +++ b/tests/test-org-ql.el @@ -176,6 +176,20 @@ with keyword arg NOW in PLIST." (cl-loop while (re-search-forward org-heading-regexp nil t) sum 1))))) + (describe "Agenda" + + (require 'org-agenda) + + (it "Sets effort properties for formatted element" + (let* ((element (car (org-ql-select org-ql-test-buffer '(effort 30)))) + (item (org-ql-view--format-element element))) + (with-temp-buffer + (goto-char (point-min)) + (insert item) + (expect + (org-agenda-compare-effort #'= 30.0) + :to-equal t))))) + (describe "Caching" (it "Clears value cache after buffer changes"