The Omni Group
These forums are now read-only. Please visit our new forums to participate in discussion. A new account will be required to post in the new forums. For more info on the switch, see this post. Thank you!

Go Back   The Omni Group Forums > OmniFocus > OmniFocus Extras
FAQ Members List Calendar Search Today's Posts Mark Forums Read

 
Automatically change review date for projects? Thread Tools Search this Thread Display Modes
Hi all,

Been a while since I hung out in the forums, but I'm still using OF daily on both my iPhone and Mac, and loving it.

Recently I've started to make better use of the project review features to help me manage my weekly reviews better, and I really wish I'd paid more attention to this feature earlier. It's really helping.

One thing I wish I had - I wish I could configure OF so that, when I'm processing the inbox and I move a task from the Inbox into an existing project, that recipient project's Next Review date is advanced - perhaps to the present time (i.e. "Now"). I'd consider that project to be "dirty" and needing my attention next time I'm reviewing.

It's been a while since I did any Applescript for OF, but if sometime in the next few weeks I might try to do this. I'm not really sure though how I'd approach it - would need some sort of listener or hook that would execute when a task's parent changes. Any thoughts? Have you folks written or seen scripts that can register as listeners to events like this?

Last edited by fudster; 2009-08-21 at 12:20 AM.. Reason: improving the title of the thread (hopefully)
 
Here's a different approach, no scripting required. Simply pull up a project mode view, grouped by changed date. The "Changed Today" group will have all the projects where you made any sort of a change today, and you can just review the bunch of them, or select the ones you think ought to have their review date modified and change it in the inspector.
 
Hey whpalmer4,

Sweet. I see that now - that's even better. Thanks!
 
Thanks for this tip. I didn't even know that this VERY useful grouping was even there...
 
Quote:
Originally Posted by whpalmer4 View Post
Here's a different approach, no scripting required. Simply pull up a project mode view, grouped by changed date. The "Changed Today" group will have all the projects where you made any sort of a change today, and you can just review the bunch of them, or select the ones you think ought to have their review date modified and change it in the inspector.
I just noticed a flaw in this approach. Consider this scenario:

- I complete a weekly review, say on a Friday afternoon.
- later that day, I sort through my inbox and corral a handful of captures that came in since I finished the weekly review. As whpalmer's said, this nudges the Changed Date for each of the projects that received a capture.
- that evening I decide to review and clarify those changed projects, using the Changed Date grouping.

In the top Changed Today grouping, I'll not only see the projects that were changed during my evening review, but also every project that I reviewed earlier in the day! This is because when you mark a project as reviewed, it nudges the changed date. If a person wanted to stay on top of things and review daily, the Changed Date won't help identify the dirty projects - more specifically, it won't help differentiate between the projects that changed because they were reviewed, and the ones the were changed for any other reason.

So, I'm back to thinking that we need a preference that will allow us to advance the Next Review date to "Now", when a project is changed.
 
Meanwhile, I created a script that I use to fake it.

I'm taking advantage of the fact that when a project is reviewed, it does update the Changed date - indeed to the exact same time as the Last Reviewed date.

To use this, I make a selection in the sidebar, and run the script. All projects included in the selection will have the Next Review date changed as follows:

- if the last review date and the changed date are exactly the same, do nothing
- if the last review date and the changed date are different, we'll assume the project is "dirty" and needs to be reviewed - so we change the Next Review date to be the same as the Changed date.

The way it is now, since the Next Review date is set to the Changed Date, I see some "review yesterday" and "review within the last week", but this doesn't bother me, it's nice to have the projects that became dirty longest ago near the top. But this has a bit of a quirk - if I run the script a second time, the Next Review date becomes Today - this is because the first time I ran it, the Next Review date is changed by the script, and this constitutes a change, so the changed date is nudged, and that date is used in the second run of the script! A minor annoyance - to make the script behave more consistently I suppose the Next Review date could be set to Now.

Here's the script:

Code:
on run
    tell application "OmniFocus"
        tell front document
            tell document window 1
                
                set selectedTrees to selected trees of sidebar
                -- once I'm more comfortable that this is not causing damage, I'll consider running it on the whole tree in the sidebar.
                             
                repeat with aTree in selectedTrees
                    
                    if class of value of aTree is project then
                        my processProject(aTree)
                    else if class of value of aTree is folder then
                        my processFolder(aTree)
                    end if
                    
                end repeat
                
            end tell
        end tell
    end tell
end run

on processFolder(theFolderAsTree)
    using terms from application "OmniFocus"
        
        repeat with aTree in trees of theFolderAsTree
            if class of value of aTree is project then
                my processProject(aTree)
            else if class of value of aTree is folder then
                my processFolder(aTree)
            end if
        end repeat
        
    end using terms from
end processFolder

on processProject(theProjectAsTree)
    using terms from application "OmniFocus"
        
        set aProject to value of theProjectAsTree
        
        
        set oldReviewDate to last review date of aProject
        set lastChangedDate to modification date of aProject
        
        if oldReviewDate is not equal to lastChangedDate then
            set next review date of aProject to lastChangedDate
        end if
    end using terms from
    
end processProject
 
Quote:
Originally Posted by fudster View Post
I just noticed a flaw in this approach. Consider this scenario:

- I complete a weekly review, say on a Friday afternoon.
- later that day, I sort through my inbox and corral a handful of captures that came in since I finished the weekly review. As whpalmer's said, this nudges the Changed Date for each of the projects that received a capture.
- that evening I decide to review and clarify those changed projects, using the Changed Date grouping.

In the top Changed Today grouping, I'll not only see the projects that were changed during my evening review, but also every project that I reviewed earlier in the day! This is because when you mark a project as reviewed, it nudges the changed date.
That's a good point, but can't you address it by careful selection of your sort option when doing the grouping? Group by changed date to get the projects changed today, and sort by changed date to pull the ones that you've touched most recently (by processing your Inbox) to the top.

Also, isn't step 2 of the weekly review "get Inbox to zero"? :)

That looks like a useful script, thanks for sharing it!
 
Quote:
Originally Posted by whpalmer4 View Post
That's a good point, but can't you address it by careful selection of your sort option when doing the grouping? Group by changed date to get the projects changed today, and sort by changed date to pull the ones that you've touched most recently (by processing your Inbox) to the top.
Hmm, yeah sorting in addition to using the Changed grouping would help a little. I just think OmniFocus can and do better than that. :)

Quote:
Also, isn't step 2 of the weekly review "get Inbox to zero"? :)
Yes. Um, but I can't see how that helps here.

I try to get inbox to zero every day if I can. And it's not uncommon that an Action that I captured into the inbox, which, during my daily review, I corralled into its rightful project (assuming it exists already), needs to be the Next Action (perhaps after some clarifying). Until I review that project, and shuffle things around, that new action is going to live at the bottom of the action list in the project.

So - the reality has changed, the project is "dirty", and I need a clear way to see that it needs to be reviewed and brought up to date again. I think I need to be able to do this in order to trust the system.

Quote:
That looks like a useful script, thanks for sharing it!
Cool, yeah I hope it helps. I really do think that OF should advance the next review date, or give some other indication that a project needs review, if it's changed. Till then, this script should work, it's an extra step before the review but it takes only seconds. I've been using the script for a couple days now and it seems to work pretty well.
 
Quote:
Originally Posted by fudster View Post
Yes. Um, but I can't see how that helps here.

I try to get inbox to zero every day if I can. And it's not uncommon that an Action that I captured into the inbox, which, during my daily review, I corralled into its rightful project (assuming it exists already), needs to be the Next Action (perhaps after some clarifying). Until I review that project, and shuffle things around, that new action is going to live at the bottom of the action list in the project.

So - the reality has changed, the project is "dirty", and I need a clear way to see that it needs to be reviewed and brought up to date again. I think I need to be able to do this in order to trust the system.
If you've already drained your Inbox swamp before going through and marking projects reviewed (as recommended by DA), isn't the only way you have this issue is if you decide to do another review the same day?
 
Quote:
Originally Posted by whpalmer4 View Post
If you've already drained your Inbox swamp before going through and marking projects reviewed (as recommended by DA), isn't the only way you have this issue is if you decide to do another review the same day?
Ah, I see what you mean. Yes it's true that the only time it wouldn't work at all, using the combination of the Next Review grouping and then the Changed grouping, is when I do more than one review in a day

But this'll happen more than you might think, at least for me. When I first encountered this, I'd completed a rather large review, marking a few dozen projects as reviewed, at about 1:30 in the morning. I did a daily review after my work day later that same day, to sort through some captures I'd done that day. To Omnifocus, of course, it's still the same day that it was when i did my big review the night (er, early morning) before, so everything so everything appeared in the "Today" band in the Changed grouping. Useless information.

I really have to say though, that even if this limitation wasn't there, using my script (which emulates what I think OmniFocus should be doing, or offering in a preference), it's much nicer to just be able to use the Next Review grouping to whip through all the projects, instead of also having to then use the Changed grouping afterward.

And the easier it is to do these little daily reviews and stay on top of things, the more likely I am to to them consistently, and then, I've found, the faster (and less scary) the weekly review will go too.

This is all about establishing a system that we trust, right? And I know from experience that if the system's contents are not kept clean and current, my brain won't trust it, and I'll fall behind. So for me, the system has to be so easy to use so I can use a spare moment here and there to clean things up, both the inbox and the projects too, without the system pushing back or requiring me to jump through too many hoops.

The way OmniFocus is today, it's fairly easy to stay on top of the inbox and keep it empty, using typeahead in the Project dropdown (or dragging) to siphon the inputs off into the appropriate projects. Add this script (or ideally an option in OF to nudge a project's review date whenever it's changed), and for me it's also pretty easy to review the impact those inputs are having on their respected projects and outcomes.
 
 


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Similar Threads
Thread Thread Starter Forum Replies Last Post
is there way to change review dates? johnsonloring OmniFocus for iPad 3 2013-02-15 12:52 PM
Automatically setting the start date? catmorley OmniFocus 1 for Mac 6 2012-01-16 06:14 PM
Automatically change to unflagged when tasked marked as finished hwend OmniFocus 1 for Mac 2 2008-03-26 04:11 AM
Hiding projects until review date jasong OmniFocus 1 for Mac 12 2007-08-01 01:26 AM
Next review date not corresponding with grouping by next review Paul Hoadley OmniFocus 1 for Mac 2 2007-07-21 04:12 PM


All times are GMT -8. The time now is 07:04 AM.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2021, vBulletin Solutions, Inc.