From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Supporting non-stuck projects view with minimal effort Date: Mon, 4 Jan 2010 17:51:39 +0100 Message-ID: <5C106023-C5C4-4D1F-949F-DDEC1FF0C078@gmail.com> References: <20091222175803.GA22580@taupan.ath.cx> Mime-Version: 1.0 (Apple Message framework v936) Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NRqiS-0005Kz-5K for emacs-orgmode@gnu.org; Mon, 04 Jan 2010 12:27:40 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NRqiN-0005KK-Kl for emacs-orgmode@gnu.org; Mon, 04 Jan 2010 12:27:39 -0500 Received: from [199.232.76.173] (port=56037 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NRqiN-0005KH-DF for emacs-orgmode@gnu.org; Mon, 04 Jan 2010 12:27:35 -0500 Received: from mail-ew0-f224.google.com ([209.85.219.224]:56823) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NRqiM-00066I-Sj for emacs-orgmode@gnu.org; Mon, 04 Jan 2010 12:27:35 -0500 Received: by ewy24 with SMTP id 24so18217843ewy.26 for ; Mon, 04 Jan 2010 09:27:34 -0800 (PST) In-Reply-To: <20091222175803.GA22580@taupan.ath.cx> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: friedel@nomaden.org Cc: Emacs-orgmode mailing list Hi Friedrich, I don't have an easy way to make this simpler. So until there are more people asking for this functionality, I guess you can simply live with the "ugly" version. Greetings - Carsten 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. > > 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 > 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