Quote:
The script is available over here.
|
- It seems to fetch the note data, but doesn't put it into the report. Was that the intention ? (It would certainly speed it up a bit to elide the fetching of note data, which can be quite slow).
- Since OF ver 1.8, the introduction of the flattened tasks property has made it possible to write these things rather more easily and briefly (and with noticeably faster execution - see the illustrative sketch below).
- The list comes out unsorted. This could be fixed by querying the cache rather than the applescript library, and using an ORDER BY statement in the SQL.
Note also that I have added a clause to exclude completed items from the Next Week list. (More generally, I am a little unclear about the intended role of the modification date conditions in the Last Week list - intuitively I might have expected this to have been defined in terms of the completion date).
Code:
property pstrSubject : "TPS Report" property pstrGreeting : "Boss Name " property pstrThisWeek : "Here's what I did this week: " property pstrNextWeek : "Here's what I plan on doing next week: " property dteNow : current date property dteHistory : dteNow - (7 * days) property dteFuture : dteNow + (7 * days) tell application "OmniFocus" activate tell front document set refHistory to a reference to (flattened tasks where (in inbox = false and its modification date > dteHistory)) set refFuture to a reference to (flattened tasks where ¬ (in inbox = false) and (completion date is missing value) and (modification date < dteHistory) and (due date > dteHistory) and (due date < dteFuture)) end tell set {lstHDate, lstName} to {modification date, name} of refHistory repeat with i from 1 to length of lstHDate set item i of lstHDate to short date string of item i of lstHDate & space & item i of lstName end repeat set {lstFDate, lstName} to {modification date, name} of refFuture repeat with i from 1 to length of lstFDate set item i of lstFDate to short date string of item i of lstFDate & space & item i of lstName end repeat end tell set text item delimiters to return set strMsg to (pstrGreeting & " " & pstrThisWeek & " " & lstHDate as string) & " " & pstrNextWeek & " " & lstFDate as string set text item delimiters to space tell application "Mail" tell (make new outgoing message with properties {visible:true, subject:pstrSubject, content:strMsg}) make new to recipient at end of to recipients with properties {name:"Boss", address:"the_boss@megacorp.com"} end tell activate end tell
Last edited by RobTrew; 2011-02-07 at 02:22 AM..