Carsten: Brilliant plug-in. Thanks for the Christmas present!
I agree that rather than turning this into a project management mess, it just automates a very repetitive task. I think this will let me keep more stuff out of my next actions, since urgent follow-on actions won't have to wait for the next project review to be added to my task list. I tested some circular dependencies (e.g. Action1 depending on Action5 in your demo), and nothing broke, which was good. I don't think there is a good way to handle this, but at least the TW didn't go into an infinite loop. For others interested: I just installed it with Backstage -> Import -> [Enter the URL...] http://www.carsten-thiele.de/monkeygtd/SequencedActionsPlugin.html -> check only the box: SequencedActionsPlugin -> un-check "Keep these tiddler linked..." -> Import It doesn't take effect until you reload the web page. (I'm sure that's pretty standard, but it was the first time I tried it and I thought it would be helpful for others to write it out) Jason On Dec 24, 5:35 am, Carsten Thiele <[email protected]> wrote: > Hi Jim, > > thank you for your comment. Yes your are right, the right order of > Actions is more related to Project planning. > > But for me it is just a convenience feature. There are Projects (in > the GTD meaning of a project) where you exactly know what you have to > do after one Action. Normaly you finish one Action, mark it as done > and do the next thing, perhaps related to other projects. When you > review your projects you find your project and move the obvious future > action to next. And exactly that is what i want to automate. IF i know > what to do next, i can define that dependency while defining my > actions. It saves time doing the Project review. > > Example: Person B wants to know the result of a call with Person A. so > both "call person A" and "call person b to inform about call with A" > are in my call list. The second is "Future" beause it can not be done > now. So when i finished the call with "A" the second call is moved > automaticaly to the "call" context. Now it is possible that the next > call will be to person B right now, and not after the next project > review. > > I fully agree, please don't turn MGTD into a Project Management tool. > If this happens it will be more complicated (and maybe slower) to use > for GTD. > > Merry Christmas, > Carsten > > On 23 Dez., 15:15, Jim McD <[email protected]> wrote: > > > Hi, > > Well done on the coding. Action dependancies are outside of GTD > > though, and within the realm of project planning. There are loads of > > free and commercial project planning tools on the market, that will do > > dependancies, critical path ananlysis, "float", resource management > > etc. MS Project is one. > > > However there are very few GTD tools, and MGTD is probably the best > > there is. Please don't change MGTD from a GTD tool into a ten-a-penny > > project manager. > > > About half the posts to this group are requests for MGTD to be turned > > into something else, eg. project planner, mail client, address book, > > PIM tool, calenndar manager. All worthy applications, but nothing to > > do with GTD really, and well catered for elsewhere. > > > Sorry to be so negative around Christmas time. Have a happy > > Christmas! And well done on the coding, it's more than I could have > > managed. > > > Jim. > > > On Dec 20, 1:33 pm, Carsten Thiele <[email protected]> > > wrote: > > > > Hello, > > > > i converted my "Hack" to a complete plugin. I Uploaded a Demo into > > > this group as file: monkeygtd-SequencedActionsPlugin-demo.zip > > > (http://gtd-tiddlywiki.googlegroups.com/web/monkeygtd-SequencedActions... > > > ) The html-Upload did not work, so i added the zip-File, that can be > > > downloaded from the files area. > > > > When you unzip it, and open the file with this added to the filename: > > > > #[[SequencedActions%20Demo]]%20Action1%20Action2%20Action3%20Action4%20 > > > [[Do%20Something]]%20Action5 > > > > or just open the "SequencedActions Demo" Tidder for instructions. > > > > Maybe this helps, > > > Carsten > > > > On 17 Dez., 22:22, Carsten Thiele <[email protected]> > > > wrote: > > > > > Hello, > > > > > i modified my monkeygtd to support "sequenced"-Actions. I use the > > > > normal Tag-Feature to Control the sequence of the actions. When i > > > > create an action that depends on another action i just "Tag" it with > > > > the name of the first one, and set it to "Future". When the first > > > > Action is marked as "Done" or, if it is a Ticker, is marked as > > > > "Actioned" (only works for one-time-Ticklers). the second action is > > > > modified from "Future" to "Next". There is no GUI-Support for this, i > > > > have to edit the Actions and type in manualy the name of the Actions > > > > in the Tags-Field. > > > > > Maybe with an Example its more clear to understand: > > > > > First > > > > Action: > > > > "Action 1" > > > > > Can be done when Action 1 is finished: "Action > > > > 2" "Action3" > > > > > Can be done when A2 and A3 are finished: "Action > > > > 4" > > > > > I create the actions like this > > > > > Action 1, a normal "Next" Action > > > > > Action 2 and Action 3 "Future" Actions Tagged with "[Action 1]" > > > > > Action 4 "Future" action Tagged with "[Action 2] [Action 3]" > > > > > - Now, when i finish "Action 1", the code searches for Actions with > > > > the Tag "Action 1", and finds "Action 2" and "Action 3". > > > > - For each Action the code searches if all required Actions (only > > > > "Action 1" in this case) are done. If this is true, the Action (here > > > > Action 2 and 3) are moved from "Future" to "Next" > > > > - If i "undo" Action 1, Action 2 and Action 3 are moved from "Next" to > > > > "Future" > > > > > - When "Action 2" is finished, again all Actions with the Tag "Action > > > > 2" are searched, in this case just "Action 4". > > > > - The Code starts searching all Actions and Ticklers that are > > > > referenced in the Tag-field of Action 4. It finds "Action 2" as done, > > > > but "Action 3" as not done, so the "Action 4"-Action is NOT moved from > > > > "Future" to "Next" > > > > - Now "Action 3" is done, too. > > > > - The Code again searches for all Actions and Tickers that are > > > > referenced in the Tag-field of Action 4. Now it finds both Actions > > > > (Action 2 and Action 3) as "Done" so "Action 4" is moved from > > > > "Future" to Next". > > > > > The visualisation in the GUI for this solution is not very good. In > > > > the Project-Dashboard the Actions are not ordered in the right way, > > > > and you can not see that there are dependencies between the actions. > > > > But for me this is ok, its just for "auto-nexting" one of the future > > > > actions, so that i dont have to do a check of the "Projects with no > > > > next action"-View. Or Project Dashboard every time i finish an Action > > > > that is part of a Project. > > > > > Maybe someone else can add some UI-Support to this solution. > > > > > Until now i did not test it with MonkeyGTDs with many Actions, so > > > > maybe there is still a performance problem with this, but for my (at > > > > the moment) small test environment it works good. Next step will be > > > > more tests and the integration in my "production"-monkeygtd. > > > > > Please do not integrate this without good testing in your production- > > > > Monkey-GTDs. Maybe there is still something wrong that can cause your > > > > data to be damaged! > > > > > So here is what i have done. > > > > > I modified the function "TiddlyWiki.prototype.setTiddlerTag". now it > > > > contains this code: > > > > > TiddlyWiki.prototype.setTiddlerTag = function(title,status,tag) > > > > { > > > > var tiddler = this.fetchTiddler(title); > > > > if(tiddler) { > > > > var t = tiddler.tags.indexOf(tag); > > > > if(t != -1) > > > > tiddler.tags.splice(t,1); > > > > if(status) > > > > tiddler.tags.push(tag); > > > > tiddler.changed(); > > > > this.incChangeCount(title); > > > > this.notify(title,true); > > > > this.setDirty(true); > > > > > // here starts my modification > > > > if (tag == "Done" || tag == "Actioned") { > > > > var dependend = this.getTaggedTiddlers(title); > > > > var tiddlersWithTag = ""; > > > > for(var m = 0; m < dependend.length; m++) { > > > > var currentTiddler = dependend[m]; > > > > if (status) { > > > > if > > > > (this.allPreviousActionsAreDone(currentTiddler)) { > > > > > > > > this.setTiddlerTag(currentTiddler.title, !status, "Future"); > > > > > > > > this.setTiddlerTag(currentTiddler.title, status, "Next"); > > > > } > > > > } else { > > > > > > > > this.setTiddlerTag(currentTiddler.title, !status, "Future"); > > > > > > > > this.setTiddlerTag(currentTiddler.title, status, "Next"); > > > > } > > > > } > > > > story.refreshAllTiddlers(); > > > > } > > > > } > > > > > }; > > > > > and i added this new function: > > > > > TiddlyWiki.prototype.allPreviousActionsAreDone = function > > > > (tiddlerToCheck) { > > > > var tagsToIgnore = ["Future", "Done", "Tickler", "Action", > > > > "Realm", > > > > "Project", "[(Waiting For)]"]; > > > > var tags = tiddlerToCheck.tags; > > > > var allPreviousDone = true; > > > > for (var m = 0; m < tags.length; m++) { > > > > var currentTag = tags[m]; > > > > if (!tagsToIgnore.contains(currentTag)) { > > > > var tiddlerToCheck = > > > > this.fetchTiddler(currentTag); > > > > if((tiddlerToCheck.tags.contains("Action") && ! > > > > tiddlerToCheck.tags.contains("Done")) || (tiddlerToCheck.tags.contains > > > > ("Tickler") && !tiddlerToCheck.tags.contains("Actioned"))) { > > > > allPreviousDone = false; > > > > } > > > > } > > > > } > > > > return allPreviousDone; > > > > > } > > > > > Maybe this is usefull for someone, comments > > ... > > read more » --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "GTD TiddlyWiki" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/GTD-TiddlyWiki?hl=en -~----------~----~----~----~------~----~------~--~---
