Compare commits
1 Commits
e5bad8b847
...
96a7f35a90
| Author | SHA1 | Date | |
|---|---|---|---|
| 96a7f35a90 |
@ -454,14 +454,29 @@ PARAMS is a property list of the following parameters:
|
||||
|
||||
`org-ql' expression (in sexp syntax) to filter the list of tasks.
|
||||
|
||||
`:sort-column'
|
||||
|
||||
Specify the column to sort by. Can be any of `task', `effort',
|
||||
`timestamp', `scheduled', or `deadline'.
|
||||
|
||||
All tasks between `:start-date' and `:end-date' will be collected
|
||||
and their effort summed up. The date format is everything
|
||||
understood by `org-read-date'."
|
||||
(let* ((start-date (plist-get params :start-date))
|
||||
(end-date (plist-get params :end-date))
|
||||
(org-ql-match (plist-get params :org-ql-match))
|
||||
(sort-column-count (cl-case (plist-get params :sort-column)
|
||||
((nil) 2) ; sort by effort by default
|
||||
((task) 1)
|
||||
((effort) 2)
|
||||
((timestamp) 3)
|
||||
((scheduled) 4)
|
||||
((deadline) 5)
|
||||
(otherwise (user-error ":sort-column value invalid, see docstring of `org-dblock-write:db/org-workload-report' for options"))))
|
||||
(task-summary (db/org-planned-tasks-in-range start-date end-date org-ql-match)))
|
||||
|
||||
(message "foo %s %s" (plist-get params :sort-column) sort-column-count)
|
||||
|
||||
(insert "| Task | Effort | Timestamp | SCHEDULED | DEADLINE |\n|---|\n")
|
||||
(pcase-dolist (`(,task-id . ,effort-string) (cdr task-summary))
|
||||
(insert (format "| %s | %s | %s | %s | %s |\n"
|
||||
@ -469,15 +484,20 @@ understood by `org-read-date'."
|
||||
(or effort-string "")
|
||||
(or (org-entry-get (org-id-find task-id 'marker)
|
||||
"TIMESTAMP")
|
||||
"not set")
|
||||
"")
|
||||
(or (org-entry-get (org-id-find task-id 'marker)
|
||||
"SCHEDULED")
|
||||
"not set")
|
||||
"")
|
||||
(or (org-entry-get (org-id-find task-id 'marker)
|
||||
"DEADLINE")
|
||||
"not set"))))
|
||||
""))))
|
||||
(insert (format "|---|\n| Total | %s |\n|---|" (car task-summary)))
|
||||
(org-table-align)))
|
||||
(org-table-align)
|
||||
(forward-line -4) ; go back to actual data
|
||||
(beginning-of-line)
|
||||
(dotimes (_ sort-column-count) ; move to column to sort
|
||||
(org-table-next-field))
|
||||
(org-table-sort-lines nil ?t)))
|
||||
|
||||
(defun db/org-insert-workload-report ()
|
||||
"Create dynamic block of planned tasks in given time range."
|
||||
|
||||
Loading…
Reference in New Issue
Block a user