darrikonn / td-cli

A todo command line todo manager ✔️
https://pypi.org/project/td-cli/
MIT License
193 stars 10 forks source link

Sort TD list - [feature request] #23

Open dwtompkins opened 3 years ago

dwtompkins commented 3 years ago

I would find it very useful to be able to sort my ToDo list alphabetically. I usually organize my todolist with a project prefix. I'm wondering how I would go about filtering or sorting the db query if possible...

darrikonn commented 3 years ago

I agree, that would be useful!

I'll add that.

dwtompkins commented 3 years ago

Awesome. Thanks for the quick response! I've been using td-cli on Regolith Linux for about a month now, and the integration is spectacular. I have it setup to open with Alacritty and use some different symbols:

image

Makes coding a lot more fun when I can stay in the zone.

darrikonn commented 3 years ago

Awesome! Happy to hear!

Btw. looks like your prefixes could be replaced with groups.

td add-group my-project
td --group my-project  # this will only display todos in the my-project group
td add "my todo" --group my-project  # adds the todo to the my-project group

(you can also move your existing todos to a group with td <id> edit --group my-project)

Additionally what I always do is initialising a td config in the root of the repo I'm working in, e.g.

cd repos/foobar
td add-group foobar
td init-config  # set foobar as default group
td  # will only list todos from the foobar group
td a "my task"  # will create the todo inside the foobar group

That way I never have to pass the --group flag when I'm working on different projects.

The global (default) group is thought of as gathering all your todos, regardless of what group they live in. You can globally overwrite the default group with td group my-project preset

dwtompkins commented 3 years ago

I didn't spend as much time as I should have exploring the CLI. The td <id> e -g my-group was one I was looking for but couldn't find before.

I like the option for initializing a td-list per project/repo. That's also some helpful info that wasn't especially clear to me from reading the docs.

I've currently been using the global list in interactive mode exclusively, and I manually prefix each of my task with initials or an abbreviation of the project name.

I like that the --edit flag gives you the opportunity to edit each task in-depth (in my favorite editor). However, I think most of the time my todo's only require a single line. It can be more cumbersome for me to spend time editing each task. I like the "at-a-glance" td-list.

So the prefixes are super useful to me in the overview. I think td ag <group> would make things easier if there was a way to show the group as the prefix automatically. If you do a list groups it will only show the name of the group and the completed/uncompleted count (not the one-line task).

dwtompkins commented 3 years ago

Global view with manual prefixing matching container group: image

List of groups image

So, after this discussion, I think the automated group prefixing and the ability to sort (alphabetically?) by group (or at least cluster each group together) in the global view is really what I'm thinking would be a fantastic improvement :100:

Could possibly be related to the desired behavior in #19 ?

darrikonn commented 3 years ago

automated group prefixing is a nice idea for the global view :+1:

as well as being able to sort the list

19 only relates to the interactive mode, and being able to filter by group. So kind of unrelated.

But your ideas are good, and I'd be happy to add that to td-cli 🎉