MODO ORG - ¿Activar el estado TODO en una fecha determinada?


9

En lugar de verificar manualmente un archivo o calendario de tickler todas las mañanas, ¿cómo puedo crear un activador que establezca el estado de un elemento en TODO en una fecha determinada?

Respuestas:


5

No es una respuesta directa, pero en su lugar podría usar el soporte de Org para plazos y programación.

Puede crear sus elementos TODO y darles una fecha programada, que en Org significa la fecha en que planea realizar la tarea, y cuándo debe comenzar a aparecer en su agenda. (¡Si aún no está utilizando las vistas de la agenda de la organización, vale la pena investigarlas!)

Dependiendo de sus necesidades, también puede asignar una fecha límite. Por ejemplo: cree un TODO el viernes, prográmelo para el siguiente miércoles cuando realmente quiera verlo; y darle una fecha límite para el siguiente viernes en el que debe completarse.


7

Aquí hay algo que uso todas las mañanas para revisar todo mi trabajo y cambiar la fecha a hoy si está vencida, y cambiarla de la siguiente acción a activa si es debido hoy. Es una solución personalizada para mi propio calendario que he estado usando durante un año, por lo que sin duda necesitará algo de personalización por su parte. Lo que recuerdo es que hubo un cambio en la org-deadlinede org-modela versión 7 y 8, y que puede estar usando una versión anterior en mi configuración. La versión actual puede necesitar un argumento adicional o algo así. Si necesita ayuda adicional, avíseme y trabajaré en ello en los próximos días según lo permita el tiempo.

La expresión regular que utilizo contempla los encabezados tiene dos estrellas y estará a la izquierda del búfer. Su propia configuración probablemente requerirá una modificación de la expresión regular.

(defun org-carry-forward-uncompleted-tasks ()
"Carry forward uncompleted tasks."
(interactive)
  (save-excursion
    (goto-char (point-max))
    (while (re-search-backward "^\\*\\* Active" nil t)
      (unless (org-at-heading-p)
        (org-back-to-heading t))
      (let* (
          (element (org-element-at-point))
          (todo-state (org-element-property :todo-keyword element))
          (deadline (org-element-property :deadline element))
          (deadline-time-stamp
            (when deadline
              (time-to-days
                (org-time-string-to-time
                  (org-element-property :raw-value deadline)))))
          (today (time-to-days (current-time))) )
        (when
            (and
              deadline-time-stamp
              (> today deadline-time-stamp) ;; deadline is overdue
              (string= todo-state "Active") ) ;; todo-state equals "X"
          (org-deadline nil ".") )))))

(defun org-make-active-today ()
"Change task from Next Action to Active if deadline is less than or equal to today."
(interactive)
  (save-excursion
    (goto-char (point-max))
    (while (re-search-backward "^\\*\\* Next Action" nil t)
      (unless (org-at-heading-p)
        (org-back-to-heading t))
      (let* (
          (element (org-element-at-point))
          (todo-state (org-element-property :todo-keyword element))
          (deadline (org-element-property :deadline element))
          (deadline-time-stamp
            (when deadline
              (time-to-days
                (org-time-string-to-time
                  (org-element-property :raw-value deadline) ))))
          (today (time-to-days (current-time))) )
        (when
            (and
              deadline-time-stamp
              (>= today deadline-time-stamp) ;; deadline less than or equal to today
              (string= todo-state "Next Action")) ;; todo-state equals "X"
          (org-deadline nil ".")
          (org-todo "Active") )))))
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.