pimutils / todoman

✅ A simple, standards-based, cli todo (aka: task) manager.
https://todoman.readthedocs.io
ISC License
489 stars 78 forks source link

UI rewrite to use `prompt()` #459

Open WhyNotHugo opened 2 years ago

WhyNotHugo commented 2 years ago

The current TUI is a bit clunky and wierd to use. It needs to be scrolled down with arrows, which isn't handy, [have to leave the home row] and the feedback loop when a value is invalid is not very friendly.

Something that prompts for fields and provides immediate feedback if any is invalid should be more friendly and allow more code reuse with the cli frontend. It's likely we can drop urwid entirely, and just use click.prompt().

todo new
Summary?
> some summary
Description? [none]
>
...

Not sure if to ask about all fields each time or not. It might get annoying quickly, but there's always the one liner:

todo new "Using quotes is handy if you todo's description has apostrophes."
grmat commented 2 years ago

Not sure if to ask about all fields each time or not.

How about leaving it to the users to set up classes of todos in their config files?

sample config:

class_a = "default;summary"
class_b = "summary,location"
class_c = "*"

Here, default class a has just the summary, is used when todo new is called with no option or todo new -c a

todo new -c b additionally asks for location and class c for everything (but you could still skip by entering nothing).

WhyNotHugo commented 2 years ago

I like this approach, will definitely keep it in mind.

Tonus1 commented 9 months ago

I was wondering if it could be [none]/[d]one With a single "d" saving the todo in the actual state.