Russell Adams <RLAdams@AdamsInfoServ.Com> writes:
On Thu, Nov 04, 2021 at 12:16:19PM +0800, stardiviner wrote:How to use elisp code to generate an org-agenda view for clocked tasks and logs etc which are sorted by timestamps? I want to view my daily done tasks and attach them as part of diary (maybe use org source block elisp code to generate output?)So how to setup `org-agenda-custom-commands` to archive this purpose?I routinely export my agenda to HTML with logbook mode enabled and inactive timestamps. This shows a complete timeline of my actions. I save timestamps on changing TODO to DONE, use active timestamps for appointments, and I constantly add inactive timestamps while taking notes. I use this to justify billing to clients.I open the agenda, v m to make a monthly view, L for logbook, ] to enable inactive timestamps, and then C-x C-w to save. You may be able to just use elisp to trigger these actions.I don't do it often enough to automate it. I love being able to flatten my tree of notes into a timeline this way.-------------------------------------------------------------–— Russell Adams RLAdams@AdamsInfoServ.comPGP Key ID: 0x1160DCB3 http://www.adamsinfoserv.com/Fingerprint: 1723 D8CA 4280 1EC9 557F 66E8 1154 E018 1160 DCB3
Russell, Thanks for your hint.
I have a prototype code now, but still have problem.
(add-to-list
'org-agenda-custom-commands
'("c" "Tody [c]locked tasks."
((agenda ""
((org-agenda-ndays 1)
(org-agenda-span-1)
(org-agenda-use-time-grid t)
(org-agenda-include-diary nil)
(org-agenda-show-log (quote clockcheck))
(org-agenda-clockreport t))))))
(let* ((org-agenda-sticky t)
;; FIXME how to run it in background instead of switch to agenda buffer.
(_ (org-agenda nil "c"))
(origin-buffer (current-buffer))
(origin-buffer-point (point))
(agenda-buffer (with-current-buffer "*Org Agenda(c)*"
(buffer-substring (point-min) (point-max)))))
(switch-to-buffer origin-buffer)
(with-current-buffer origin-buffer
(goto-char origin-buffer-point)
(insert agenda-buffer)))
In the source code comment "FIXME" org-agenda always in frontend and popup buffer. I can't generate org-agenda in background then get the buffer content.
Does anybody knows some tricky method for my code?