johannesjo / super-productivity

Super Productivity is an advanced todo list app with integrated Timeboxing and time tracking capabilities. It also comes with integrations for Jira, Gitlab, GitHub and Open Project.
http://super-productivity.com
MIT License
11.86k stars 920 forks source link

Task Hierarchies #2657

Open thraidh opened 1 year ago

thraidh commented 1 year ago

Problem Statement

I have a project with many topics and services. When translating the customer requirements into tasks, I usually go top-down, which leads to tasks like this:

Currently it is not possible to do something like that in Super Productivity in a satisfactory way.

:grey_question: Possible Solution

Tasks can be handled as they are today, but visually tied together, i.e. by just indenting child tasks. Optionally you could show/hide child tasks.

:arrow_heading_up: Describe alternatives you've considered

Today there are several unsatisfactory ways to approximate the functionality:

github-actions[bot] commented 1 year ago

Thank you very much for opening up this issue! I am currently a bit overwhelmed by the many requests that arrive each week, so please forgive me, if I fail to respond personally. I am still very likely to at least skim read your request and I'll probably try to fix all (real) bugs if possible and I will likely review every single PR being made (please, give me a heads up if you intent to do so) and I will try to work on popular requests (please upvote via thumbs up on the original issue) whenever possible, but trying to respond to every single issue over the last years has been kind of draining and I need to adjust my approach for this project to remain fun for me and to make any progress with actually coding new stuff. Thanks for your understanding!

github-actions[bot] commented 1 year ago

Hello there thraidh! πŸ‘‹

Thank you and congratulations πŸŽ‰ for opening your very first issue in this project! πŸ’–

In case you want to claim this issue, please comment down below! We will try to get back to you as soon as we can. πŸ‘€

For more open ended discussions and/or specific questions, please visit the discussions page. πŸ’–

johannesjo commented 1 year ago

Related #643

thraidh commented 1 year ago

Thanks for considering! Is there any way I can help?

johannesjo commented 1 year ago

As mentioned in the related issue this is currently not planned (though I am open for good suggestions on how to integrate deeper levels of sub tasks). As mentioned in the issue there is also the possibility to use the task description for deeper levels of planning:

- Something /
- Comet Haley /
   - Sub sub sub task /
github-actions[bot] commented 1 year ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

RokeJulianLockhart commented 11 months ago

https://github.com/johannesjo/super-productivity/issues/2657#issuecomment-1793605147

@GitHub-Actions, lack of task hierarchies is unacceptable in 2023. This issue should be whitelisted.

Korne127 commented 10 months ago

I think this feature is essential as well. I found this project and it really looks great, but being able to nest tasks recursively (and maybe even projects) is a necessary feature to organise your tasks imo. I hope this will be implemented at some point, but for now I have to look for an alternative.

I also don't get why #643 has been closed when it's not yet implemented.

RokeJulianLockhart commented 9 months ago

@johannesjo, why do https://github.com/johannesjo/super-productivity/issues/2657#event-11444136677 yet not reopen this?

johannesjo commented 9 months ago

My argument remains the same as with #643 (and so do the options to work around this). On the main view there would be very many complications UI wise to implement an infinite number of levels. Even a third level is difficult. There are also many problems with that conceptually that would need to be solved.

I am not ruling this out completely, but there is much work to be done (not sure when I will find the time...) and there is the risk that the end result will feel complicated for the end user.

As a general remark: I think super productivity works best as a tool to plan and engage with your tasks on a daily basis. Personally I use pen & paper or an empty text document for broader conceptual long term planning and transfer it as needed.

github-actions[bot] commented 3 months ago

This issue has not received any updates in 90 days. Please comment, if this still relevant!

RokeJulianLockhart commented 3 months ago

https://github.com/johannesjo/super-productivity/issues/2657#issuecomment-2261798692

@GitHub-Actions, https://github.com/johannesjo/super-productivity/issues/2657#issuecomment-1817715991

sunnylake180 commented 2 months ago

I love the app thanks so much for making it!
Is drag and drop the complicated part for the UI? The x position of the drop determines the subtask level from one of a list of allowed levels. This list is calculated via a function of the mouse y position during the drag. Allowed levels start from the level of the task below the drop location and count up until they end at to the level task above it + 1. That's how the UI of another app that I use called ClickUp behaves although I've not seen its source code. It's true that some users might find this to be too complicated for their liking, so perhaps it could be configured in a setting called "Multilevel Subtasks" on/off. That way everyone wins. Personally I don't use Jira so if the Jira integration isn't compatible with this feature yet, the user could just be notified of this when they change the setting and the Jira integration could be temporarily disabled. If someone can provide guidance to which file in the source could contain these edits, I'd be happy to possibly take a shot at it in a fork and make a PR later if I succeed and if that's ok with @johannesjo. Or if @johannesjo wants to do it maybe a few of us would be open to considering sponsoring his time for the feature if he would be open to that.

johannesjo commented 2 months ago

Is drag and drop the complicated part for the UI

No the complicated part is the displaying the controls as needed on many variants of different available spaces :)

On the logic level this is a huge change too, since parents and sub tasks are connected on some levels. There would need to be a propagation logic.

What I'd rather implement is improving adding lists on the task side panel level (currently possible via the task notes). I think this might be a better solution. There it should also be no problem to add infinite levels of nesting there.

Korne127 commented 2 months ago

What I'd rather implement is improving adding lists on the task side panel level (currently possible via the task notes). I think this might be a better solution. There it should also be no problem to add infinite levels of nesting there.

Hey, I can just say that from a user perspective, while this is an improvement, this is no real replacement, and sadly no "better" solution.

Super Productivity looks really promising and is a great app, but the lack of nested tasks sadly is a dealbreaker for me. Personally, many if not most of my tasks are nested. And I don't mean lists. I would use (nested) lists for categorising stuff (e.g. Programming -> Private Projects; Open Source Contributions // University work -> the individual subjects // Everyday tasks // etc.). But a big share (at least a third) of my tasks are nested; from a specific programming project over buying groceries to answering to messages. This means I'd have literal hundreds of lists, which is just no working solution.

Korne127 commented 2 months ago

Random thought, but maybe it would make sense to make a bounty for this? There are definitely quite some people who need this feature, and would be willing to support devs for making it real. Maybe in combination this can be an incentive to try and make this real.

johannesjo commented 2 months ago

Random thought, but maybe it would make sense to make a bounty for this? There are definitely quite some people who need this feature, and would be willing to support devs for making it real. Maybe in combination this can be an incentive to try and make this real.

Sure we can try this! I am not fundamentally against the feature (though I think productivity wise it might not be a good idea to nest your tasks this way).

RokeJulianLockhart commented 2 months ago

https://github.com/johannesjo/super-productivity/issues/2657#issuecomment-2311774480

@johannesjo, I merely want to ensure that relationships are preserved. Whether they're indicated in a purely hierarchical tree like this issue proposes, or something more versatile like https://github.com/tasks/tasks/issues/1868#issue-1222154156, is inconsequential as long as the original task data is preserved, and I can still see the relationships somehow.

Korne127 commented 1 month ago

though I think productivity wise it might not be a good idea to nest your tasks this way

@johannesjo I currently use TickTick (which supports nesting tasks up to five levels) and for me, keeping track of all my To-Dos and managing them would be impossible without this. (I'd just have a huge pile of todos and get lost in it while a tree structure allows me to save relations.) I think this is just something personal: There may be people for which this doesn't work, but I'm sure that there are also many people which need this to be productive.

But I can imagine that there are (both frontend and backend-wise) some challenges to do this. I think TickTick actually does this pretty decently, especially frontend-wise. It shows how you can make a good system to Drag tasks around, etc. while still having more complex task hierarchies. About the space problem: I think it's actually pretty rare that you have a task with more than 5 levels open. A solution that's pretty easy to implement and works pretty well would be that starting at a specific amount of levels that are open, a horizontal scroll bar is introduced for the respective top level task, so that you can scroll to the right for the nested subtasks. This would provide a good solution to the (very rare) edge case of having many tasks open without creating any disadvantage for the average usage.

The one thing that would be important imo when introducing a task hierarchy would be an option to enable / disable task breakup (meaning that when disabled, you see the task hierarchies, but when enabled, you see all sub-tasks as (closed) top-level-tasks as well). This is necessary if you add due dates to subtasks and want to sort all tasks by their due dates (which is a pretty common behaviour).

dwiehoff commented 1 month ago

@Korne127 Are you saying that the many sub-levels help you to organize and structure your tasks? Would you have a more extensive example of what this would look like in practice? Maybe there are alternative ways to achieve the same result.

BeatLink commented 1 month ago

A lot of productivity tools recommend breaking large projects down into more tangible actions. nested tasks are vital to this. Without nesting, your tasks may have a big picture overview but be vague and unactionable and lacking details. Or your tasks may be specific and actionable but lacking the context of the big picture

Say for example you have a task to tidy your apartment. With a nested structure it would look like this

And each of those 4 levels would have other sibling tasks.

If you only tracked the 4th level detailed tasks, your workday would become chaotic and disorganized, jumping from specific task to specific task while not having a clear picture in mind as to what each task is leading up to and when a project can be actually considered done.

If you only tracked the top level tasks, your workday would still be chaotic. You would know what to do in the large scheme of things but not the specific actions to get to those goals. And even if you did know the specific actions, you would have to think and decide what those actions are every time you start and stop working on that project.