From fdbff54ebdf4c360c9efbe08e67c821b88a2ed23 Mon Sep 17 00:00:00 2001 From: Adam Porter Date: Sat, 7 Sep 2019 18:48:33 -0500 Subject: [PATCH] WIP --- org-ql-view.el | 10 ++++++++-- test-org-ql-view-section.el | 27 ++++++++++++++++++++++++--- 2 files changed, 32 insertions(+), 5 deletions(-) diff --git a/org-ql-view.el b/org-ql-view.el index bd1c3f0..3491b96 100644 --- a/org-ql-view.el +++ b/org-ql-view.el @@ -43,6 +43,12 @@ Used in `org-ql-view-string'.") "Map for `org-ql-view' maps." [tab] org-ql-view-section-toggle) +;;;; Faces + +(defface org-ql-view-heading + `((t (:height 1.2 :weight bold))) + "Face for headings in `org-ql-view' buffers.") + ;;;; Classes (org-ql-defclass org-ql-view-section () @@ -75,7 +81,7 @@ Used in `org-ql-view-string'.") "String used to indent individual items." :type 'string) -(defcustom org-ql-view-item-indent-per-level 2 +(defcustom org-ql-view-item-indent-per-level 3 "Number of spaces used to indent items at each level." :type 'integer) @@ -179,7 +185,7 @@ Does not include newline." (with-slots (header items) section (concat (propertize (format "%s" (or header "None")) - 'face 'magit-section-heading) + 'face 'org-ql-view-heading) " (" (number-to-string (num-items items)) ")")))) (cl-defmethod org-ql-view-insert ((item org-ql-item)) diff --git a/test-org-ql-view-section.el b/test-org-ql-view-section.el index 90eb3c0..1678383 100644 --- a/test-org-ql-view-section.el +++ b/test-org-ql-view-section.el @@ -115,7 +115,8 @@ '(todo) :action #'org-ql-item-at) (-sort (-on #'string< #'org-ql-item-priority)) - (org-ql-view-sort-planning))) + (org-ql-view-sort-planning) + (org-ql-view-sort-todo))) (top-section (org-ql-view-section :header "To-Do by Planning Date" :items items)) @@ -129,8 +130,7 @@ (ts-format "%B %Y" it))) (lambda (item) (awhen (or (org-ql-item-deadline-ts item) (org-ql-item-scheduled-ts item)) - (ts-format "%d %B" it))) - 'org-ql-item-todo + (ts-format "%d %A" it))) )) (pop-to-buffer buffer))) (let* ((buffer (get-buffer-create "test-org-ql-view-section")) @@ -151,6 +151,27 @@ (lambda (item) (awhen (or (org-ql-item-deadline-ts item) (org-ql-item-scheduled-ts item)) (ts-format "%B %Y" it))) + 'org-ql-item-priority + + )) + (pop-to-buffer buffer))) + +(let* ((buffer (get-buffer-create "test-org-ql-view-section")) + (items (->> (org-ql-select "~/src/emacs/org-ql/tests/data.org" + '(todo) + :action #'org-ql-item-at) + (-sort (-on #'string< #'org-ql-item-priority)) + (org-ql-view-sort-planning))) + (top-section (org-ql-view-section + :header "To-Do by Planning Date" + :items items)) + (inhibit-read-only t)) + (with-current-buffer buffer + (read-only-mode 1) + (erase-buffer) + (org-ql-view-insert top-section + :group-by (list 'org-ql-item-priority + 'org-ql-item-todo )) (pop-to-buffer buffer)))