Ich habe mehrere Aufgaben in meiner Org-Datei, von denen eine Elemente enthält, die mit einem Kontrollkästchen beginnen (aber nur diese). Sie alle haben am Ende ein Statistik-Cookie ([n / m]).
Ich suche nach einer Möglichkeit, die übergeordnete Aufgabe automatisch von auf zu aktualisieren TODO
, DONE
sobald alle Kontrollkästchen ebenfalls als erledigt markiert sind.
Die Dokumentation sagt:
Wenn Sie möchten, dass ein TODO-Eintrag automatisch zu FERTIG wechselt, wenn alle untergeordneten Elemente fertig sind, können Sie das folgende Setup verwenden [...]
Eine andere Möglichkeit ist die Verwendung von Kontrollkästchen, um eine große Anzahl von Unteraufgaben zu identifizieren (eine Hierarchie von) (siehe Kontrollkästchen).
Ich verstehe den letzten Teil so, dass der übergeordnete Status bereits automatisch aktualisiert werden sollte, wenn untergeordnete Elemente Kontrollkästchen sind (was nicht der Fall ist).
Was vermisse ich?
Bearbeiten:
Aus org-after-todo-statistics-hook
der Dokumentation (org.el):
Hook, der aufgerufen wird, nachdem ein TODO-Statistik-Cookie aktualisiert wurde. Jede Funktion wird mit zwei Argumenten aufgerufen: der Anzahl der nicht erledigten Einträge und der Anzahl der erledigten Einträge.
Was bedeutet, dass der vorgeschlagene Code von orgmode.org:
(defun org-summary-todo (n-done n-not-done)
"Switch entry to DONE when all subentries are done, to TODO otherwise."
(let (org-log-done org-log-states) ; turn off logging
(org-todo (if (= n-not-done 0) "DONE" "TODO"))))
(add-hook 'org-after-todo-statistics-hook 'org-summary-todo)
Kontrollkästchen werden nicht gezählt.
* Heading [0/1]
Antworten:
Wie Sie in Ihrer aktualisierten Frage erwähnt haben,
org-after-todo-statistics-hook
ist es nicht das, was Sie wollen. Was du willst istorg-checkbox-statistics-hook
.Ich benutze diese Funktion, um das zu tun, was Sie beschreiben (sie sollten diese Funktionalität wirklich in den Organisationsmodus bringen):
(add-hook 'org-checkbox-statistics-hook 'my/org-checkbox-todo)
Wird es jedes Mal aufgerufen, wenn Sie ein Kontrollkästchen aktivieren?Es erfordert, dass Sie ein Statistik-Cookie (das, was Sie mit
[/]
oder[%]
dann bekommenC-c C-c
) in der Kopfzeile haben.quelle
Ich wollte eine Version, die genau das tut, wonach @ctietze sucht - den Kontrollkästchenstatus für Elemente in der Checkliste umschalten. Ich habe versucht
org-reset-checkbox-state-subtree
anzurufen , habe aber Fehler bei zu vielen verschachtelten Frames erhalten (ich verwende Spacemacs).Hier ist meine Arbeitslösung:
quelle