Hi Everyone,
Partly because I think it's neat and partly to ask for ways that I could
improve it I figured I'd share my latest little snippet of org elisp with
the list.
I maintain my primary TODO list as an org file with top-level headings like *
This Week, * Delegated, * Scheduled, * Deferred, etc. These all contain
TODOs or potential TODOs.
Anything I intend to work on near term I refile into * This Week and that's
then the primary heading that I'm burning down throughout my day.
I do weekly reflection/projections and 6 week reflection/projections. When
I do a weekly reflection I go through another heading * Done to remind
myself what I accomplished in the past week. When I do a 6 week
reflection/projection I review the Done heading one more time and then I
refile all the entries currently there into an * Archive heading. Then
every now and then I actually archive entries in Archive into an
*.org_archive file. * Done and * Archive are both tagged with ARCHIVE.
In an effort to start automating some of this effort I wrote the following
elisp to refile all the Level 2 entries to the Done heading:
(defun timvisher-org-refile-done-entry-position
()
(save-excursion
(goto-char (point-min))
(re-search-forward "^\\* Done")))
(defun timvisher-org-refile-done-entry
()
(org-refile nil
(current-buffer)
(list "* Done"
(buffer-file-name)
nil
(timvisher-org-refile-done-entry-position))))
(defun timvisher-org-refile-done-entries
()
(interactive)
(length
(org-map-entries #'timvisher-org-refile-done-entry
"LEVEL=2/+DONE|+CANCELLED"
nil
'archive)))
I'm doing Level 2 only because for long running projects I tend to have a
single Level 2 heading with many subheadings representing the project's
breakdown and I don't want them to be refiled out of the project.
Opportunities for improvement would be:
1. Is there a better way to find the * Done entry than searching for it
every time?
2. Am I using org-refile correctly there? It's functional but it also
seems needlessly complicated.
Hope this finds you all well. :)
--
In Christ,
Timmy V.
https://blog.twonegatives.com
http://five.sentenc.es