Merge branch 'doc' into details-view

This commit is contained in:
contrapunctus 2021-07-01 07:29:13 +05:30
commit 883f813615
3 changed files with 80 additions and 32 deletions

View File

@ -429,7 +429,6 @@ Ensure that the user manual is easily discoverable.
#+END_QUOTE
* macro for extensions :code:extension:
<2021-06-07T16:33:54+0530>
A macro to create new columns for Chronometrist.
Extension writer specifies
@ -452,6 +451,26 @@ Benefits -
+ easier creation of such extensions
+ users can easily replace the function used to generate the cells, without having to deal with how the string is inserted into the row specifier.
Current uses -
1. =chronometrist-goal=
2. =chronometrist-spark=
* macro for frontends :code:
<2021-06-26T08:49:25+0530>
A macro to create Chronometrist frontends (based on =tabulated-list-mode=). If implemented, would shorten code for all four existing and two planned frontends.
Programmer specifies -
1. frontend command name (a symbol)
2. name (string, passed to =define-derived-mode=)
3. rows function
4. schema value
5. name of buffer created by command
Macro creates -
1. =frontend= interactive command, which behaves like a toggle
2. function =frontend-rows=
3. custom variables =frontend-schema=, =frontend-row-transformers=, =frontend-schema-transformers=, =frontend-buffer-name=
* unified format-duration function :code:customization:
<2021-06-08T11:17:54+0530>
@ -577,16 +596,53 @@ Steps
3. Clock in to different task. Error.
Might have to do with there being 2 empty lines between the last-but-one plist and the new last plist.
* spark monthly view :spark:feature:
:PROPERTIES:
:feature: frontend
:END:
<2021-06-17T00:08:08+0530>
Frontend to show one or more months for a specific task, calendar-style, with each day being a single sparkline block.
* Task-specific detailed view :feature:
:PROPERTIES:
:feature: frontend
:END:
<2021-06-22T04:57:06+0530>
Frontend similar to =chronometrist=, but specific to one task - displays its unique tag/key-value combinations and their sparklines. Time period (day, week, etc) could be customizable.
* STARTED New frontends and enhancements :feature:
** Existing frontends
*** chronometrist (overview for a day)
list of tasks, one day, durations and graphs
+ commands [0%]
1. [ ] previous/next day
2. [ ] set day
3. [ ] reset day
4. [ ] set duration format
*** report
list of tasks, one week, durations only
*** statistics
list of tasks, one week/month/year [fn:1]
*** details (intervals for a day) [0%]
list of intervals, one day [fn:1]
+ [-] commands [50%]
1. [X] set [task/key-value] filter [fn:2]
2. [X] set range
3. [ ] previous/next day
4. [ ] set duration format
+ [ ] with =spark= - vertical sparkline for each interval
+ [ ] non-tabular text [fn:3]
+ [ ] when range is a pair with the =car= or the =cdr= being blank, set the respective date to the earliest (if =car= is blank) or the latest (if =cdr= is blank) date available.
** New frontends I want
*** task-key-values
list of unique key-values for a task, one day [fn:1], durations and graphs
+ commands [0%]
1. [ ] set task
2. [ ] set range
*** task-graph [0%]
list of weeks or months [fn:1], one task (with optional key-value filter [fn:2]), horizontal graph (and durations/stats?)
+ [ ] commands [0%]
1. [ ] toggle week/month
2. [ ] set [task/key-value] filter
3. [ ] set range
+ [ ] non-tabular text [fn:3]
[fn:1] variable range
[fn:2] keys - show intervals with those keys; key-values - intervals with those values; or predicate
[fn:3]
#+BEGIN_SRC
"(Showing intervals|No intervals to show)
[(with (<keyword>*|<keyword-value>*)|
matching <predicate>)]
(for <date>|
between (<date>|<datetime>) and (<date>|<datetime>)|
for <predicate>)"
#+END_SRC

View File

@ -1458,12 +1458,8 @@ Has no effect if a task is active."
;;;###autoload
(defun chronometrist (&optional arg)
"Display the user's tasks and the time spent on them today.
Based on their timelog file `chronometrist-file'. This is the
'listing command' for `chronometrist-mode'.
If numeric argument ARG is 1, run `chronometrist-report'.
If numeric argument ARG is 2, run `chronometrist-statistics'."
If numeric argument ARG is 1, run `chronometrist-report'; if 2,
run `chronometrist-statistics'."
(interactive "P")
(chronometrist-migrate-check)
(let ((buffer (get-buffer-create chronometrist-buffer-name))

View File

@ -2549,12 +2549,8 @@ Has no effect if a task is active."
;;;###autoload
(defun chronometrist (&optional arg)
"Display the user's tasks and the time spent on them today.
Based on their timelog file `chronometrist-file'. This is the
'listing command' for `chronometrist-mode'.
If numeric argument ARG is 1, run `chronometrist-report'.
If numeric argument ARG is 2, run `chronometrist-statistics'."
If numeric argument ARG is 1, run `chronometrist-report'; if 2,
run `chronometrist-statistics'."
(interactive "P")
(chronometrist-migrate-check)
(let ((buffer (get-buffer-create chronometrist-buffer-name))