Eu tenho várias tarefas no meu arquivo organizacional, uma das quais possui itens começando com uma caixa de seleção (mas somente aqueles). Todos eles têm um cookie estatístico no final ([n / m]).
Estou procurando uma maneira de atualizar automaticamente a tarefa pai de TODO
para DONE
uma vez que todas as caixas de seleção também estejam marcadas como concluídas.
A documentação diz:
Se você deseja que uma entrada TODO mude automaticamente para DONE quando todas as crianças terminarem, você pode usar a seguinte configuração [...]
Outra possibilidade é o uso de caixas de seleção para identificar (uma hierarquia) um grande número de subtarefas (consulte Caixas de seleção).
Pelo que entendi, a última parte é que, se os itens filhos forem caixas de seleção, o estado pai já deverá ser atualizado automaticamente (o que não é o caso).
o que estou perdendo?
Editar:
Da org-after-todo-statistics-hook
documentação (org.el):
Gancho chamado após a atualização de um cookie de estatísticas TODO. Cada função é chamada com dois argumentos: o número de entradas não concluídas e o número de entradas concluídas.
O que significa que o código proposto do 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)
não contará itens da caixa de seleção.
* Heading [0/1]
Respostas:
Como você mencionou na sua pergunta atualizada,
org-after-todo-statistics-hook
não é o que você deseja. O que você quer éorg-checkbox-statistics-hook
.Eu uso essa função para fazer o que você descreve (eles realmente devem colocar essa funcionalidade no modo organizacional):
(add-hook 'org-checkbox-statistics-hook 'my/org-checkbox-todo)
será chamado sempre que você alternar uma caixa de seleção.Ele requer que você tem um cookie estatísticas (a coisa que você começa com
[/]
ou[%]
entãoC-c C-c
) no cabeçalho.fonte
Eu queria uma versão que faça o que a @ctietze está procurando - alterne o estado da caixa de seleção para itens na lista de verificação. Tentei ligar,
org-reset-checkbox-state-subtree
mas obtive erros sobre muitos quadros aninhados (estou usando o Spacemacs).Aqui está a minha solução de trabalho:
fonte