TRYB ORG - Wyzwolić status DO ZROBIENIA w określonym dniu?

9

Zamiast ręcznie sprawdzać codziennie plik buforujący lub kalendarz, w jaki sposób mogę utworzyć wyzwalacz, który ustawi status elementu na ZADANIE w określonym dniu?

Earlio
źródło

Odpowiedzi:

5

Nie jest to bezpośrednia odpowiedź, ale zamiast tego możesz skorzystać ze wsparcia organizacji w zakresie terminów i harmonogramów.

Możesz utworzyć swoje elementy DO ZROBIENIA i podać im zaplanowaną datę, co w Org oznacza datę, w której planujesz wykonać zadanie - i kiedy powinno zacząć się pojawiać w twoim programie. (Jeśli jeszcze nie korzystasz z widoków porządku obrad, warto je zbadać!)

W zależności od potrzeb możesz także wyznaczyć termin. Na przykład: utwórz TODO w piątek, zaplanuj na następny środę, kiedy naprawdę chcesz go zobaczyć; i wyznacz mu termin na następny piątek, do którego musi się wypełnić.

glucas
źródło
7

Oto coś, czego używam każdego ranka, aby przeczesywać wszystkie moje rzeczy do zrobienia i zmienić datę na dziś, jeśli jest zaległa, i zmienić ją z następnej akcji na aktywną, jeśli ma to nastąpić dzisiaj. Jest to niestandardowe rozwiązanie dla mojego własnego kalendarza, z którego korzystam od roku, więc niewątpliwie będzie ono wymagało dostosowania z Twojej strony. Przypominam sobie, że nastąpiła zmiana w org-deadlinestosunku do org-modewersji 7 i 8 i być może w poprzedniej wersji korzystałem z poprzedniej wersji. Obecna wersja może wymagać dodatkowego argumentu lub czegoś - jeśli potrzebujesz dodatkowej pomocy, daj mi znać, a ja będę pracować nad tym przez kilka następnych dni, jeśli pozwoli na to czas.

Wyrażenie regularne, którego używam, przewiduje, że nagłówki mają dwie gwiazdki i będą znajdować się na lewo od bufora. Twoja własna konfiguracja prawdopodobnie będzie wymagać modyfikacji wyrażenia regularnego.

(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") )))))
lista prawnicza
źródło