Би било наистина удобно, ако за определени задачи в организационен режим подзадачите могат да наследят крайния срок на основната задача. Това поведение трябва да възникне в случай, че вече не съм посочил краен срок за подзадачата. По този начин всички подзадачи ще се покажат в изгледа на моя организационен дневен ред с подходящи крайни срокове, които лесно могат да се манипулират.
Има ли някакъв начин подзадачите да наследяват крайни срокове в организационен режим?
Отговори (6)
Какво ще кажете за функция за добавяне на подзадачи? Този добавя краен срок към подзадачата, ако нейният родител има такъв:
(defun my-org-insert-sub-task ()
(interactive)
(let ((parent-deadline (org-get-deadline-time nil)))
(org-goto-sibling)
(org-insert-todo-subheading t)
(when parent-deadline
(org-deadline nil parent-deadline))))
Не забравяйте да го свържете с ключ:
(define-key org-mode-map (kbd "C-c s") 'my-org-insert-sub-task)
Също така може да намерите тези настройки за полезни:
(setq org-enforce-todo-dependencies t)
(setq org-agenda-dim-blocked-tasks 'invisible)
Наскоро този въпрос беше зададен и получи отговор в пощенския списък за организационен режим. Добавям тази дискусия тук с надеждата, че някой ще я намери за полезна:
http://article.gmane.org/gmane.emacs.orgmode/49215
Добавих този код в моя .emacs в този комит:
https://github.com/vedang/emacs-config/commit/1cb6c774a991d50853134d8085ca61dd12585993
org-entry-get-with-inheritance
изглежда не може да получи специални свойства като DEADLINE...
- person David Glasser; 13.09.2015
Ето съвет, който работи за последните версии на Org 9, за разлика от предишния ми отговор, който спря да работи в даден момент.
(defun org-entry-properties-inherit-deadline (orig-fun &optional pom which)
"Call ORIG-FUN with POM, but if WHICH is `DEADLINE' do it recursively."
(if (string= which "DEADLINE")
(org-with-point-at pom
(let (value)
(while (not (or (setq value (funcall orig-fun (point) which))
(not (org-up-heading-safe)))))
value)
(funcall orig-fun pom which))))
(advice-add 'org-entry-properties :around #'org-entry-properties-inherit-deadline)
DEADLINE е едно от тези свойства, които не се наследяват по подразбиране. Можете да промените това, като персонализирате променливата org-use-property-inheritance
org-use-property-inheritance
на t
и когато това не проработи, я зададох на ("DEADLINE")
. Свойството за краен срок обаче не се наследява (не се отразява в моята организационна програма).
- person vedang; 10.08.2011
M-x org-tags-view
и ограничете търсенето до нещо като DEADLINE<="<2011-09-01>"
.
- person Manuel Batsching; 14.08.2011
Друг подход е да използвате org-agenda-bulk-action
в org-agenda-mode
.
- Дефинирайте
stuck-projects
като TODO заглавия, които все още нямат краен срок и все още не са планирани: Дефиниране на непланирани задачи като блокирани проекти в Emacs Org-Mode M-x org-agenda-list-stuck-projects
. Това ще покаже списък със TODO заглавия без краен срок.- m, за да маркирате записите, към които искате да добавите краен срок.
- B за извикване на
org-agenda-bulk-action
. - d, за да зададете един краен срок за всички тях.
Org-mode има способността да наследява тагове като крайни срокове, но по подразбиране org-entry-get
не го прави. Ето съвет, за да гарантирате, че DEADLINE
винаги се наследява.
(defvar inherit-override nil)
(defun org-entry-get-inherit-deadline (orig-fun pom property &optional inherit &rest args)
"Call ORIG-FUN with POM, but if PROPERTY is `DEADLINE', set INHERIT.
Passes through remaining ARGS.
Sets inherit-override variable which stops infinite loops."
(when (and (eq inherit nil)
(string= property "DEADLINE")
(not inherit-override))
(setq inherit t))
(let ((inherit-override t))
(apply orig-fun pom property inherit args)))
(advice-add 'org-entry-get :around #'org-entry-get-inherit-deadline)
9.4
- person Daniel Dinnyes; 13.01.2021