From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: Finding tasks without a specific property set Date: Tue, 12 Feb 2008 10:27:14 +0100 Message-ID: <903D6991-B0F0-4BA1-93CD-8BB0BC6B2849@science.uva.nl> References: <87d4r2ogqg.fsf@gollum.intra.norang.ca> Mime-Version: 1.0 (Apple Message framework v915) 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 1JOrky-0002rk-Uv for emacs-orgmode@gnu.org; Tue, 12 Feb 2008 04:48:53 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JOrkx-0002qw-PI for emacs-orgmode@gnu.org; Tue, 12 Feb 2008 04:48:52 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JOrkx-0002qr-LO for emacs-orgmode@gnu.org; Tue, 12 Feb 2008 04:48:51 -0500 Received: from ug-out-1314.google.com ([66.249.92.169]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JOrkx-0007W3-DP for emacs-orgmode@gnu.org; Tue, 12 Feb 2008 04:48:51 -0500 Received: by ug-out-1314.google.com with SMTP id a2so480842ugf.48 for ; Tue, 12 Feb 2008 01:48:51 -0800 (PST) In-Reply-To: <87d4r2ogqg.fsf@gollum.intra.norang.ca> 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: Bernt Hansen Cc: emacs-orgmode@gnu.org Hi Bernt, On Feb 12, 2008, at 7:01 AM, Bernt Hansen wrote: > Hi all, > > I'm using properties to track estimated effort on tasks. I have the > following setup for estimaged effort for tasks and use column view to > set the values normally. > > ,----[ .emacs settings for property Effort ] > | (setq org-global-properties '(("Effort_ALL" . "0 0:10 0:30 1:00 > 2:00 3:00 4:00 5:00 6:00 7:00 8:00"))) > | (setq org-columns-default-format "%40ITEM(Task) > %17Effort(Estimated Effort){:} %CLOCKSUM") > | > | (custom-set-variables > | '(org-agenda-custom-commands (quote (("W" "Waiting Tasks" tags "/ > WAITING" nil) > | ("n" "Next Tasks" tags "/NEXT" nil) > | ("N" "Next Tasks - No Specified Duration" tags "-Effort= > \"0:10\"-Effort=\"0:30\"-Effort=\"1:00\"-Effort=\"2:00\"-Effort= > \"3:00\"-Effort=\"4:00\"-Effort=\"5:00\"-Effort=\"6:00\"-Effort= > \"7:00\"-Effort=\"8:00\"/NEXT" nil) > | ("h" "Next Home Tasks" tags "@home/NEXT" nil) > | ("w" "Next Work Tasks" tags "@work/NEXT" nil) > | ("E" "Errands To Run" tags "@errand/-DONE-CANCELLED" nil) > | ("S" "Stuff To Do Someday" tags "/SOMEDAY" nil))))) > `---- > > One of the things I do regularly (as part of my weekly review) is find > NEXT tasks with no Effort property so I can use column view to add a > value for each task with no effort estimate. I'm currently using a > custom agenda view (N) for this. > > ,----[ Tags search for NEXT tasks with no Effort property assigned ] > | Headlines with TAGS match: -Effort="0:10"-Effort="0:30"- > Effort="1:00"-Effort="2:00"-Effort="3:00"-Effort="4:00"- > Effort="5:00"-Effort="6:00"-Effort="7:00"-Effort="8:00"/NEXT > `---- > > I haven't found a better way to do this other than to list all > possible > Effort property values in a tags search. What I really want to > match is > any NEXT task with no Effort property (or a Effort property value that > is blank) > > Is there a way to do that? Yes there is: You can use a regular expression matching the empty string: Effort={^$}/NEXT What also should work (but does not...) is Effort=""/NEXT This will work in the next version, an I hope to document this with an example. > I could just do a todo search for NEXT and go to column view and scan > down the list for blank entries... but my list of NEXT tasks is long > (currently 140). Hmmm actually that isn't too bad and the NEXT todo > search is much faster than my "Next Tasks - No Specified Duration" > search which takes 6-10 seconds to execute. That is really long. One possible reason is that you might have turned on property inheritance. If this is on and you check a property that does not exist locally, Org-mode has to go back all the way to the top level for each headline it checks. If you have tuned inheritance on, please consider to restrict it to a few properties. Since you are looking only for NEXT entries you can also speed things up by requiring that the entry is a TODO. You can do this by using `tags-todo' instead of `todo' when defining the custom command, or by writing the search as (note the "!" after the "/"). Effort={^$}/!NEXT I'd be interested what happens to your timing with these improvements. Reasonably cryptic all this, I know. This is what happens when you add features with time instead of designing the full thing from the start. > Maybe I answered my own question :) and I hope I added another perspective. - Carsten