From: Carsten Dominik <carsten.dominik@gmail.com>
To: friedel@nomaden.org
Cc: Emacs-orgmode mailing list <emacs-orgmode@gnu.org>
Subject: Re: Supporting non-stuck projects view with minimal effort
Date: Sat, 26 Dec 2009 12:06:15 +0100 [thread overview]
Message-ID: <2F4B22E0-35D7-4409-A556-90399F0DB64F@gmail.com> (raw)
In-Reply-To: <20091222175803.GA22580@taupan.ath.cx>
On Dec 22, 2009, at 6:58 PM, Friedrich Delgado Friedrichs wrote:
> Hi!
>
> I've been thinking, the view of stuck projects is nice, but I'd need a
> view of non-stuck projects to complement it.
Hi Friedel,
can you describe how you would use such a view in your workflow?
- Carsten
>
> I came up with this ugly mess:
>
> (defun fdf/org-agenda-list-unstuck-projects (&rest ignore)
> "Create agenda view for projects that are NOT stuck.
> Stuck projects are project that have no next actions. For the
> definitions
> of what a project is and how to check if it stuck, customize the
> variable
> `org-stuck-projects'.
> MATCH is being ignored."
> (interactive)
> (let* ((org-agenda-overriding-header
> (or org-agenda-overriding-header "List of unstuck projects:
> "))
> (matcher (nth 0 org-stuck-projects))
> (todo (nth 1 org-stuck-projects))
> (todo-wds (if (member "*" todo)
> (progn
> (org-prepare-agenda-buffers (org-agenda-files
> nil 'ifmode))
> (org-delete-all
> org-done-keywords-for-agenda
> (copy-sequence
> org-todo-keywords-for-agenda)))
> todo))
> (todo-re (concat "^\\*+[ \t]+\\("
> (mapconcat 'identity todo-wds "\\|")
> "\\)\\>"))
> (tags (nth 2 org-stuck-projects))
> (tags-re (if (member "*" tags)
> (org-re "^\\*+ .*:[[:alnum:]_@]+:[ \t]*$")
> (if tags
> (concat "^\\*+ .*:\\("
> (mapconcat 'identity tags "\\|")
> (org-re "\\):[[:alnum:]_@:]*[
> \t]*$")))))
> (gen-re (nth 3 org-stuck-projects))
> (re-list
> (delq nil
> (list
> (if todo todo-re)
> (if tags tags-re)
> (and gen-re (stringp gen-re) (string-match "\\S-"
> gen-re)
> gen-re))))
> (skip-regexp
> (if re-list
> (mapconcat 'identity re-list "\\|")
> (error "No information how to identify unstuck
> projects"))))
> (org-tags-view nil matcher)
> (let ((org-agenda-skip-function
> (lambda ()
> (org-agenda-skip-if t 'notregexp skip-regexp))))
> (with-current-buffer org-agenda-buffer-name
> (setq org-agenda-redo-command
> '(org-agenda-list-stuck-projects
> (or current-prefix-arg org-last-arg)))))))
>
> As you will notice, this is blatantly copied and pasted from
> org-agenda-list-stuck-projects (which is why it's ugly), the only
> difference is that it doesn't set org-agenda-skip-function but uses
> org-agenda-skip-if.
>
> I think this could be very easily integrated into
> org-agenda-list-stuck-projects (with an optional parameter 'negate'),
> but I somehow feel reluctant to patch org-core for some irrational
> reason.
>
> Kind regards
> Friedel
> --
> Friedrich Delgado Friedrichs <friedel@nomaden.org>
> TauPan on Ircnet and Freenode ;)
> _______________________________________________
> Emacs-orgmode mailing list
> Please use `Reply All' to send replies to the list.
> Emacs-orgmode@gnu.org
> http://lists.gnu.org/mailman/listinfo/emacs-orgmode
- Carsten
next prev parent reply other threads:[~2009-12-26 11:06 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-22 17:58 Supporting non-stuck projects view with minimal effort Friedrich Delgado Friedrichs
2009-12-26 11:06 ` Carsten Dominik [this message]
2009-12-26 16:20 ` Friedrich Delgado Friedrichs
2009-12-26 16:30 ` Bernt Hansen
2009-12-26 18:14 ` Friedrich Delgado Friedrichs
2010-01-04 16:51 ` Carsten Dominik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=2F4B22E0-35D7-4409-A556-90399F0DB64F@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
--cc=friedel@nomaden.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).