Carsten Dominik <[EMAIL PROTECTED]> writes: > On May 25, 2007, at 3:41, Steven Lumos wrote: >> Being yet another planner switcher, I'm used to using planner-report- >> generate to assist me with writing a monthly activity report. I don't >> need fine-grained time tracking, or even most of what planner-report- >> generate does--it would be ideal to get just a list of TODOs that were >> closed between two dates and then I'll look at it while I type a few >> sentences in an email buffer. >> >> Is there already an easy way to "get a list" (I guess that a sparse >> tree would be most convenient for me) of TODOs marked as closed within >> some date range? > > You can use org-occur to create a tree with matches of CLOSED time > stamps. > And you can use the callback argument of org-occur to verify if a > match is in a given time interval. Something like this: > > (defun org-closed-in-range () > "Sparse treee of items closed in a certain time range." > (interactive) > ;; Get the time interval from the user. > (let* ((time1 (time-to-seconds > (org-read-date nil 'to-time nil "Starting date: "))) > (time2 (time-to-seconds > (org-read-date nil 'to-time nil "End date:"))) > ;; callbakc function > (callback (lambda () > (let ((time > (time-to-seconds > (apply 'encode-time > (org-parse-time-string > (match-string 1)))))) > ;; check if time in interval > (and (>= time time1) (<= time time2)))))) > ;; make tree, check each match with the callback > (org-occur "CLOSED: +\\[\\(.*?\\)\\]" nil callback)))
This is just right. Thanks! Steve _______________________________________________ Emacs-orgmode mailing list Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode