View Single Post
I got burned today...

Quote:
Originally Posted by rant
I was merrily cranking my widgets... (actions)... when I had a strange thought of... why am I not working on Project A?

Turns out, the next action of project A did not have a context and was not showing up in my lists.

This is such an important thing for OmniFocus to Fix! It's insane that there isn't a way to see all unassigned contexts. Almost as insane as not being able to see all projects without next actions. ;)

The goal of GTD... is to do all the thinking first, so when I sit down to a list I am not thinking the following thoughts:
do I have the correct tools,
am I at the right place,
do I have enough time
is this the next action I need to work on for this project.

If the thinking is done, then when a person is processing actions in contexts, (or cranking widgets as David calls it) they are not thinking about whether they are seeing everything they should be seeing.

If they doubt that they may not be seeing everything in their current context, or if they doubt that they are not working on what is most important at the time, then they loose trust in the system and will put the software on a dusty shelf never to return to it again!
To solve this problem I modified your script. The recursion in it is quite impressive... I must say I learned a couple things by going through it.

But the script doesn't go over every task.

I added a small part beginning at line 127...

It scans all uncompleted tasks in the node, and if there is no context, it will add a note saying... "NoContext". This will allow me to perform a search on all NoContext items so I can assign a context.

If you add this to your current script, would you consider taking Growl out? I find it intrusive and don't want to leave it installed. If not, no worries, I'll install Growl so I can open the script to remove the Growl scripting. :o

One more thought... and let me preface by first bowing to your programming knowledge... that may sound sarcastic, but I assure you it is not.

The efficiency of this code is brilliant... but I wonder if it is accessing objects too much and you are loosing some speed from it?

One example...
set theSections to every section
is basically loading the entire outline into AppleScript.

If you reference the ID of the object, you won't load the entire object into AppleScript, but just a string, and can then access the OF object. It may speed things up a bit.

One way I have done this in the past is...
set taskListIDs to id of tasks of selectedTask
set taskCount to count (taskListIDs)

--Go through all tasks
repeat with iTask from 1 to taskCount
--get current task & attributes
set currentTask to task id (item iTask of taskListIDs) of (document documentID)
complete currentTask
end repeat


It may be more work than it's worth... especially if OF is going to fix these things. I've attempted to modify your recursion using ID's... and well... you use some incredibly efficient recursion! :)

Again... thank you for the script. It is extremely helpful!
Attached Files
File Type: zip Verify Next Actions Exist missing context.zip (11.3 KB, 464 views)

Last edited by SpiralOcean; 2007-07-09 at 08:53 PM..