emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Orgmode] Re: stuck projects and org-agenda-dim-blocked-tasks


From: Magnus Nilsson
Subject: [Orgmode] Re: stuck projects and org-agenda-dim-blocked-tasks
Date: Wed, 27 Oct 2010 21:48:04 +0200



2010/10/27 Magnus Nilsson <address@hidden>
Dear all,

I now use
(setq org-agenda-dim-blocked-tasks 'invisible)
in order to not see parent tasks and tasks further down in ordered task lists. I like this.

But I would still really like to see stuck projects with
(org-agenda-list-stuck-projects)

With the above setting, however, they unfortunately also become invisible.

How can I meet both my requirements:
1. Keep parent tasks invisible
2. Show stuck projects.

Does anyone have a solution to my problem?

Best,
Magnus

I made a working solution to my above requirements through a quick hack that seems to work.
Not the prettiest solution, but I thought I'd post it if anyone else is interested in the same requirements.
I'd be happy to hear if anyone has got a better solution, or if I have missed something related in the manual.
I simply redefined org-finalize-agenda in my .emacs file to:

(defun org-finalize-agenda ()
  "Finishing touch for the agenda buffer, called just before
  displaying it.

NOTE: I have deliberately changed this function to only make blocked
tasks invisible for the todo-list (if org-agenda-dim-blocked-tasks is set to 'invisible).
Compare with the original org-finalize-agenda function. /Magnus"
  (unless org-agenda-multi
    (save-excursion
      (let ((inhibit-read-only t))
    (goto-char (point-min))
        (while (org-activate-bracket-links (point-max))
          (add-text-properties (match-beginning 0) (match-end 0)
                               '(face org-link)))
        (org-agenda-align-tags)
        (unless org-agenda-with-colors
          (remove-text-properties (point-min) (point-max) '(face nil))))
      (goto-char (point-min))
      (let  ((todo-listp (looking-at "Global"))) ;; Seems like all todo-lists start with the word 'Global'
        (if (and (boundp 'org-agenda-overriding-columns-format)
                 org-agenda-overriding-columns-format)
            (org-set-local 'org-agenda-overriding-columns-format
                           org-agenda-overriding-columns-format))
        (if (and (boundp 'org-agenda-view-columns-initially)
                 org-agenda-view-columns-initially)
            (org-agenda-columns))
        (when org-agenda-fontify-priorities
          (org-agenda-fontify-priorities))
        (when (and todo-listp org-agenda-dim-blocked-tasks org-blocker-hook)
          (org-agenda-dim-blocked-tasks))
        (org-agenda-mark-clocking-task)
        (when org-agenda-entry-text-mode
          (org-agenda-entry-text-hide)
          (org-agenda-entry-text-show))
        (if (functionp 'org-habit-insert-consistency-graphs)
            (org-habit-insert-consistency-graphs))
        (run-hooks 'org-finalize-agenda-hook)
        (setq org-agenda-type (org-get-at-bol 'org-agenda-type))
        (when (or org-agenda-filter (get 'org-agenda-filter :preset-filter))
          (org-agenda-filter-apply org-agenda-filter)))
      )))
 

reply via email to

[Prev in Thread] Current Thread [Next in Thread]