Improve subtasks+smart lists: ability to query subtasks based on parent attributes
Subtasks are great, but using them with smart lists isn't. Some problems:
- priority inversion: subtasks have priority independent of their parent task. Yet logically, a higher priority task should never be waiting on a low priority task - that lower priority task should inherit the higher priority if it blocks the higher priority. Subtasks are clearly sometimes used to model blocking tasks
- due date inversion: while it makes plenty of sense for a subtask to be due before the main task, having it due after, or worse, never. This is basically the same as priority inversion, yet with dates instead of priorities.
Many use cases with subtasks seem like they could be resolved with better tools for these problems. Many of us are clearly making smart lists to organize different subsets of our tasks by due date and/or priority, yet subtasks don't integrate well with these because of the mismatch between subtask attributes and parent attributes.
I propose:
1) a new search operator modifier, parent:. E.g. "parent:priority:1" should match subtasks whose parent task has priority:1; "parent:duebefore:tomorrow" could match tasks whose parent task is due before tomorrow
2) a second new search operator modifier: ancestor:, which should match if any recursive parent matches - i.e. ancestor:priority:1 could match if any of the parent task, parent of the parent task, etc match priority:1.
3) a few more new search operators would be useful, perhaps minAncestorPriority: and maxAncestorPriority:, and earliestAncestorStartBefore / latestAncestorStartAfter (and similarly DueBefore/DueAfter variants as well)
4) more general comparison options for tasks and their ancestors may be useful, e.g. comparing priorities, due dates, time estimates
I consider features 1-3 really crucial for the use cases I'd like to enable. I suspect some folks will want to build smart lists that help them fix their priorities/due dates/time estimates, whereas other folks will just write their queries to catch highest priority/earliest due ancestor.
I think this could satisfy similar use cases such as requests for inherited attributes: https://www.rememberthemilk.com/forums/ideas/21218/ - if we could query/sort based on parent/ancestor attributes we could create some of our own workarounds
- priority inversion: subtasks have priority independent of their parent task. Yet logically, a higher priority task should never be waiting on a low priority task - that lower priority task should inherit the higher priority if it blocks the higher priority. Subtasks are clearly sometimes used to model blocking tasks
- due date inversion: while it makes plenty of sense for a subtask to be due before the main task, having it due after, or worse, never. This is basically the same as priority inversion, yet with dates instead of priorities.
Many use cases with subtasks seem like they could be resolved with better tools for these problems. Many of us are clearly making smart lists to organize different subsets of our tasks by due date and/or priority, yet subtasks don't integrate well with these because of the mismatch between subtask attributes and parent attributes.
I propose:
1) a new search operator modifier, parent:. E.g. "parent:priority:1" should match subtasks whose parent task has priority:1; "parent:duebefore:tomorrow" could match tasks whose parent task is due before tomorrow
2) a second new search operator modifier: ancestor:, which should match if any recursive parent matches - i.e. ancestor:priority:1 could match if any of the parent task, parent of the parent task, etc match priority:1.
3) a few more new search operators would be useful, perhaps minAncestorPriority: and maxAncestorPriority:, and earliestAncestorStartBefore / latestAncestorStartAfter (and similarly DueBefore/DueAfter variants as well)
4) more general comparison options for tasks and their ancestors may be useful, e.g. comparing priorities, due dates, time estimates
I consider features 1-3 really crucial for the use cases I'd like to enable. I suspect some folks will want to build smart lists that help them fix their priorities/due dates/time estimates, whereas other folks will just write their queries to catch highest priority/earliest due ancestor.
I think this could satisfy similar use cases such as requests for inherited attributes: https://www.rememberthemilk.com/forums/ideas/21218/ - if we could query/sort based on parent/ancestor attributes we could create some of our own workarounds
Log in
to post a reply.