Raymond Zeitler <[email protected]> writes: > Request: > Add (org-agenda-check-type nil 'agenda) near the beginning of > `org-agenda-todo' to prevent execution unless thing at point is an agenda > item. Optionally, add a custom variable (perhaps named > `org-agenda-todo-allow-only-agenda-items' or something similar) with > default value of nil such that if non-nil, the added (org-agenda-check-type > nil 'agenda) statement is called. This ensures that `org-agenda-todo' > works the same way as before, unless the user changes the default value.
This is awkward. > Reason: > Prevents this scenario: When a user marks a recurring task in the Tags > List as Done, there is no indication that it happened. The TODO state > remains at Todo and the task remains on the list, even though the > schedule/deadline date advanced. The user might repeat the action, which > will cause the schedule/deadline date to advance a second time. The next > schedule/deadline may be missed as a result. > > This is described in more detail on my blog: > See: > https://ray-on-emacs.blogspot.com/2026/07/the-problem-with-tags-lists.html What about providing a visual feedback like in agenda view? See the attached draft patch.
>From 4fa00689a4149fd44cca56fc676c6fee2e4a5930 Mon Sep 17 00:00:00 2001 Message-ID: <4fa00689a4149fd44cca56fc676c6fee2e4a5930.1785606557.git.yanta...@posteo.net> From: Ihor Radchenko <[email protected]> Date: Sat, 1 Aug 2026 19:47:38 +0200 Subject: [PATCH] org-agenda-todo: Add more visual feedback on repeating tasks * lisp/org-agenda.el (org-agenda-todo): Show snapshot before repeat not only in agenda view on today's task, but also in non-agenda views, like tag views. Link: https://orgmode.org/list/CAFGbN8Y=84MVWUszBNosWV0y-=cl5df9bw3l8d97spag8rp...@mail.gmail.com --- lisp/org-agenda.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el index 707444b8a..c7bc7fe14 100644 --- a/lisp/org-agenda.el +++ b/lisp/org-agenda.el @@ -9794,7 +9794,8 @@ (defun org-agenda-todo (&optional arg) (when (and org-agenda-headline-snapshot-before-repeat (not (equal org-agenda-headline-snapshot-before-repeat newhead)) - todayp) + (or (not (org-agenda-check-type nil 'agenda)) + todayp)) (setq newhead org-agenda-headline-snapshot-before-repeat just-one t)) (save-excursion -- 2.54.0
-- Ihor Radchenko // yantar92, Org mode maintainer, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>
