[feature request] track dependency between (sub)tasks
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Zim |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
I am searching for the ultimate task management tool and Zim has great potential there. I suggest an advanced task management described below. Probably this features can be deactivated by default so that new users are not confused.
What it takes:
* ids for tasks
* possibility to define pre-tasks that have to be marked as done before task is "active"
* hide tasks until (pre-defined) pre-tasks are marked as done
Example story:
Let's say you want to do the small project "Clean up garage"
There are several sub-tasks:
* T1 ask the neighbor for letting place my car in his empty parking spot in order to get room for garage cleaning
* T2 paint the garage door
* T3 throw away old stuff
* T4 find good spots for stuff I keep
* T5 thank neighbor for using his parking spot while working in my garage
But there is a certain logical structure behind those tasks. Usually, task management tools do not allow to make this structure explicit. You have to use a full blown project management tool which is an overkill for small projects like this.
I have to ask my neighbor (T1) before being able to start throwing away (T3) or finding new spots (T4). But painting the door (T2) is independent of the other tasks. And I do not want to thank the neighbor (T5) before I am finished with the garage.
I am sure you recognize similar structure in most of your "small projects"!
And here's the point: I want a (small) task management tool, that helps me accomplishing small projects by hiding tasks that are *not* relevant at this stage of the project.
How can Zim accomplish this requirements? Well, that isn't that hard I'd say:
Let's define the project above like this:
[ ] Clean up garage
[ ] ask neighbor for car spot [id:asknb]
[ ] paint garage door
[ ] throw away old stuff [id:throw] [pre:asknb]
[ ] place stuff that stays [id:place] [pre:asknb]
[ ] thank neighbor for car spot [pre:throw] [pre:place]
After that, you see following things in Zim's task list (TODO):
* Clean up garage
[ ] ask neighbor for car spot
[ ] paint garage door
Notes:
* "Clean up garage" should not be able to marked done here while sub-tasks are not finished.
* All other sub-tasks of the project are *not* shown because they do not make sense because of not finished pre-tasks.
Then you successfully asked your neighbor:
* Clean up garage
[ ] paint garage door
[ ] throw away old stuff
[ ] place stuff that stays
So the two sub-tasks (of the project) where asking your neighbor was "required" show up first. I think you already get the idea now.
You throw away the old stuff:
* Clean up garage
[ ] paint garage door
[ ] place stuff that stays
Now you find time to paint the old garage door with your son:
* Clean up garage
[ ] place stuff that stays
Then you finished fighting with your wife where to place the old garbage that reminds you of your high-school time:
* Clean up garage
[ ] thank neighbor for car spot [pre:throw] [pre:place]
OK, if you thank your neighbor and mark this last sub-task finished, the whole project will be marked as finished automatically (option in preferences?).
Notes:
* Did you notice that there is never a task shown, that does not makes any sense at a certain stage of the project? Cool, isn't it? ;-)
* I suggest, that finished tasks stay in the list for one day. Psychology says that this gives the user a better feeling for accomplishing tasks.
* I am not sure whether there is already the possibility to log datestamps/
Final words:
I *do* know that this is not a "small" feature I propose. This adds a very flexible and capable way of project management into Zim.
But I like the idea and flexibility of Zim right now and I do think that this feature will be used by a *lot* of so called power-users that Zim is addressing (in my humble opinion).
Over all the implementation should not be that hard compared to the vast amount of possibilities you get!
Changed in zim: | |
status: | New → Confirmed |
importance: | Undecided → Wishlist |
tags: | added: tasklist |
OK, rethinking it once again, I do believe that "[pre:foobar]" should be replaced by "[post:foobar]" or even better "[after:foobar]".