The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   OmniFocus Extras (http://forums.omnigroup.com/forumdisplay.php?f=44)
-   -   Adjusting of AppleScript to add project, context and start date (http://forums.omnigroup.com/showthread.php?t=29790)

RobTrew 2013-06-30 07:42 AM

Je pense qu'il vous manque, peut-être, le chemin complet du fichier:

[CODE]tell application "Finder" to set file_name to (name of theFile)[/CODE]



[CODE]tell application "Finder" to set file_name to (POSIX path of theFile)[/CODE]

Loyd 2013-07-03 09:28 AM

Merci RobTrew !

Ta modification marche parfaitement !!
Maintenant le document est correctement "embedded"

Loyd

Loyd 2013-10-11 07:28 AM

Hello RobTrew !

How can I set a due date to the task generated by your script below ?

Thanks in advance for your time
Loyd

RobTrew 2013-10-11 08:43 AM

[QUOTE=Loyd;127896]How can I set a due date to the task generated by your script below ?[/QUOTE]

The script in post 20 of this thread ?

Loyd 2013-10-11 09:09 AM

Yes please !

RobTrew 2013-10-11 09:26 AM

If you simply wanted the DUE date to be a certain number days after the START date, then you could do something like this:

[CODE]set DAYS_FROM_START to 5

--tell application "Finder" to set theFile to (first item of (selection as list)) as alias
tell application "Finder" to set file_name to (POSIX path of theFile)

set dteBase to current date

set theNote to "Scanned " & (dteBase as string) & "

"
set projectname to "Factures à Encoder"

set ContextName to "En-Ligne"

set theTask to "Encoder: \"" & file_name & "\""

tell application "OmniFocus"
set task_title to theTask
tell default document
-- GET A REFERENCE TO AN EXISTING PROJECT (OR NEW) PROJECT
set lstProj to flattened projects where name = projectname
if lstProj ≠ {} then
set oProj to item 1 of lstProj
else
set oProj to (make new project with properties {name:projectname})
end if

-- GET A REFERENCE TO AN EXISTING (OR NEW) CONTEXT
set lstContexts to flattened contexts where name = ContextName
if lstContexts ≠ {} then
set oContext to item 1 of lstContexts
else
set oContext to (make new context with properties {name:ContextName})
end if

-- MAKE A NEW TASK UNDER THE SPECIFIED PROJECT,
-- ATTACHING IT TO THE SPECIFIED CONTEXT
-- AND STAMPING IT WITH A START DATE

set dteStart to dteBase - (time of dteBase) -- zero the time to midnight
set dteStart to dteStart + (10 * days) -- and add three days

set dteDue to dteStart + (DAYS_FROM_START * days) -- Due N days after start

tell oProj
tell (make new task with properties {name:task_title, context:oContext, start date:dteStart, due date:dteDue, flagged:true})
set its note to theNote
tell its note to make new file attachment with properties {file name:file_name, embedded:true}
end tell
end tell
end tell
end tell[/CODE]

Loyd 2013-10-11 09:54 AM

Exactly what I need !!
Great thanks for your prompt answer RobTrew !

Mburch 2014-01-21 07:56 AM

What about adding a duration to the script?

Mburch 2014-01-21 10:23 AM

Also, how would you add a Project that is part of a hierarchy? So rather than Finance in David Sparks example, how would you add Finance if it was under Personal projects? "Personal:Finance" does not seem to work.

Dale 2014-01-27 03:57 PM

[QUOTE=Mburch;129133]What about adding a duration to the script?[/QUOTE]

In the script you would add an additional condition for the task duration.

Example 15 minutes:
[CODE]tell (make new task with properties {name:task_title, context:oContext, start date:dteStart, due date:dteDue, flagged:true, estimated minutes:”15”})[/CODE]

You can adjust the duration to the length of time you want.

[QUOTE=Mburch;129135]Also, how would you add a Project that is part of a hierarchy? So rather than Finance in David Sparks example, how would you add Finance if it was under Personal projects? "Personal:Finance" does not seem to work.[/QUOTE]

It is unclear what your hierarchy is. Is “Personal” a project or a folder; and the same with "Finance"? If you have separated "Personal" and "Professional" projects by use of folders and have a "Finance" project within each the script finds the first project matching the name "Finance" and inserts the new task.

Regardless, you could state specifically the folder you wish to add a task to the project "Finance".

Simple example:
[CODE]set theDate to current date
set theTask to "New Task"
set theDuration to "15"

tell application "OmniFocus"
tell front document
set theContext to first flattened context where its name = "Mac"
set theFolder to first flattened folder where its name = "Personal"
set theProject to first flattened project of theFolder where its name = "Finance"
tell theProject to make new task with properties {name:theTask, estimated minutes:theDuration, context:theContext}
end tell
end tell[/CODE]


All times are GMT -8. The time now is 12:05 AM.

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