Hi all, apologies for resurrecting an older thread, but I was
searching
for this very capability and found this post.
Carsten Dominik <address@hidden> 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?
I have been trying to figure this one out myself. Thank goodness for
list archives!
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)))
Ok, I tried this and I'm not sure what it did, if anything. I get the
mini-buffer saying, 'Specified time is not representable' I've tried
various date range possibilities, and can't get it to work.
I did also change the '(org-occur "CLOSED: +\\[\\(.*?\\)\\]" nil
callback)))' to be instead '(org-occur "DONE +\\[\\(.*?\\)\\]" nil
callback)))' due to the way my org seems to represent finished items:
** DONE fix the apt puppet module to automatically add apt-keys,
publish that new repository and deploy
SCHEDULED: <2009-03-16 Mon>
- State "DONE" [2009-03-16 Mon 14:49] \\
made this a lot nicer
CLOCK: [2009-03-16 Mon 14:21]--[2009-03-16 Mon 14:21] => 0:00
[2009-03-16 Mon]
As far as I can tell, I did not setup this format. I tried to change
the
(org-occur "CLOSED... to be "DONE..." instead, but no change here
either.
Thanks for any help!
micah
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
address@hidden
http://lists.gnu.org/mailman/listinfo/emacs-orgmode