kraanzu / dooit

An awesome TUI todo manager

Home Page:https://pypi.org/project/dooit/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

💡 [FEAT] The ability to automatically / manually archive completed taks, in order to "debloat" active workspaces.

voxcon opened this issue · comments

commented

Is your feature request related to a problem? Please describe.
If you have a lot of tasks in a single workspace things tend to become "bloated" over time. Making it hard to keep track of important taks.

Describe the solution you'd like
It would be beneficial to have an option to automatically or manually archive completed tasks, either after a certain amount of time has passed or when selected and commanded to be moved to the archive. The archive should be structured in accordance to the main program. Meaning, each workspace should have its own archive. Additonally, archived tasks should be able to be displayed, listed and sorted, just like regular tasks. Once archived, tasks should not be able to be modified. Maybe a good solution would be to add additional planes for archives underneath the current workplace and task planes. The visibility of these planes and the default archive time could be configured from within the config file e.g. SHOW_ARCHIVES = true/false and MOVE_TO_ARCHIVE = 10 [days].

Describe alternatives you've considered
As far as i'm concerned, the current alternative is to delete completed tasks once things get to bloated. However, this is not an ideal solution, since once tasks are deleted, you can no longer comprehend how a project evolved.

Additional context
None.

I see... So maybe I can add a Todo named "Archived" and you can toggle it to view the archived todos, right?
Can you give me a brief idea as to how this should look-like/work?

A lot of implementation becomes complicated because of the tree structure haha
For example you have a todo:

Complete Project X:

  • do A
  • do B
  • do C

And you complete C, then show should it be displayed in the archived section?


An alternative would be to add an option to hide/unhide completed tasks? :D

commented

So maybe I can add a Todo named "Archived" and you can toggle it to view the archived todos, right?

Yeah basically, i think that would be quite an elegant solution. Each workspace could have a Todo called "Archived" which can be toggled to be visible or not. And when you have a complex project you could manually (use a keybind, e.g. "h" for hide, or "m" for move) move completed Todos into the "Archived" Todo of the active workspace. And in the "Archived" Todo you could move the archived Todo back to the main workspace by using e.g. capital H, or M.

Can you give me a brief idea as to how this should look-like/work?

When creating a workplace a "Archive" Todo should automatically be created as well. It doesn't have to be visible in the beginning, but it should exist. Then things would look like this:

Active workplace of complex project X without showing the archive:

- do A
- do B
- do C 

Then toggle the archive to be visible by using a Keybind, e.g. "b" (and "B" to hide it).

Active workplace of complex project X with archive visible:

- do A
- do B
- do C 
- Archive

Now mark Todo C as complete with the existing keybing "c". Afterwards you should be able to use a keybind e.g. "m" to "move" the completed Todo into the archive. Meaning the completed Todo should become a child Todo of the "Archive" Todo. At this point things should look like this:

Active workplace of complex project X with archive visible and Todo C archived:

- do A
- do B
- Archive
   - do C [marked as done]

When selecting "do C" in the archive you should be able to "unarchive" the task by using a corresponding keybind e.g. "M".


This would be a decent and not to complex implementation of an "archive". It would however take a toll on app performance once the archive gets to big (e.g. 4 digit number of completed taks). Therefore a more complex archive implementation could be something to look into in the future.

Anyhow, good to know that you're actively working on the project.

I see... Those are pretty good solutions! Thanks for the ideas :D

There are a lot of issues/feature reqs open rn but I'm first working to make the app feel more snappier by removing a lot of unoptimized/unnecessary code.

I'll be sure to comment on this thread as to how the app should look after the implementation and maybe even better ideas might pop-up 😄

Anyhow, good to know that you're actively working on the project.

Thank you so much! To think that people actually use your stuff really fires you up to do more work on it! ❤️