Tengo varias tareas en mi archivo Org, una de las cuales tiene elementos que comienzan con una casilla de verificación (pero solo esas). Todos tienen una cookie de estadísticas al final ([n / m]).
Estoy buscando una manera de actualizar automáticamente la tarea de los padres de TODO
que DONE
una vez que todas las casillas están marcadas como se ha hecho así.
La documentación dice:
Si desea que una entrada TODO cambie automáticamente a HECHO cuando todos los niños hayan terminado, puede usar la siguiente configuración [...]
Otra posibilidad es el uso de casillas de verificación para identificar (una jerarquía de) una gran cantidad de subtareas (ver Casillas de verificación).
Según tengo entendido, la última parte es que si los elementos secundarios son casillas de verificación, el estado primario ya debería actualizarse automáticamente (que no es el caso).
¿Qué me estoy perdiendo?
Editar:
De org-after-todo-statistics-hook
la documentación de (org.el):
Enlace que se llama después de que se haya actualizado una cookie de estadísticas TODO. Cada función se llama con dos argumentos: el número de entradas no realizadas y el número de entradas realizadas.
Lo que significa que el código propuesto de 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)
no contará los elementos de la casilla de verificación.
* Heading [0/1]
Respuestas:
Como mencionó en su pregunta actualizada,
org-after-todo-statistics-hook
no es lo que quiere. Lo que queremos esorg-checkbox-statistics-hook
.Utilizo esta función para hacer lo que usted describe (realmente deberían poner esta funcionalidad en modo org):
(add-hook 'org-checkbox-statistics-hook 'my/org-checkbox-todo)
lo llamará cada vez que active una casilla de verificación.Requiere que tengas una cookie de estadísticas (lo que obtienes con
[/]
o[%]
luegoC-c C-c
) en el encabezado.fuente
Quería una versión que haga lo que @ctietze está buscando: alternar el estado de la casilla de verificación para los elementos de la lista de verificación. Intenté llamar
org-reset-checkbox-state-subtree
pero obtuve errores sobre demasiados marcos anidados (estoy usando Spacemacs).Aquí está mi solución de trabajo:
fuente