diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-22 15:01:14 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-22 15:01:14 -0500 |
| commit | 6b59781d0641c9700f5136a28025439264458385 (patch) | |
| tree | c275dfe64c7249e916f6e1f6e82cf6a4876302f8 /scripts/calendar_sync_api.py | |
| parent | cfae35d23b09f0f70be92f7c17a1da4a395946ff (diff) | |
| download | dotemacs-6b59781d0641c9700f5136a28025439264458385.tar.gz dotemacs-6b59781d0641c9700f5136a28025439264458385.zip | |
feat(org-config): add cj/org-finalize-task with tests
I added a command on C-; O d that finalizes the task at point. It prompts for a finalized keyword from org-done-keywords, so the picker tracks org-todo-keywords automatically. Marking the task done fires the org-roam journal-copy hook, so the completed task lands in today's daily.
Then the heading is reshaped by depth. A sub-task (level 3 or deeper, or a VERIFY at any depth) becomes a dated log entry: the keyword and priority cookie are stripped, a sortable timestamp is prepended, and the tags are kept. A top-level task keeps its keyword and gains a date-only CLOSED line.
The command binds org-inhibit-logging around the org-todo call so it owns the CLOSED line rather than depending on org-log-done, which is set inconsistently across two modules. The journal hook keys off org-state, not org-log-done, so the copy still fires.
Tests run in org temp-buffers with the journal hook bound to nil, exercise the real org primitives, and inject a fixed time so the stamp shape is deterministic.
Diffstat (limited to 'scripts/calendar_sync_api.py')
0 files changed, 0 insertions, 0 deletions
