gammons / ultralist

Simple task management for tech folks.
https://ultralist.io
MIT License
954 stars 106 forks source link

[feature request] Default due date if missing when adding a todo #138

Open ghost opened 6 years ago

ghost commented 6 years ago

This is an excellent tool, my sincerest gratitude for building it. Perhaps this is just a result of my todolist workflow but the ability to have a default due date when adding a new todo would be a great feature. I add todos throughout the day and will forget to add a due date when things are hectic. Consequently, I won't see them with my default filters which uses agenda. Definitely seems like an issME but I believe it would be a nice feature.

I've gotten around it by adding a conditional to my aliased function.

function todo() {
   if [[ "$@" == "l" ]]; then
        todolist l by p agenda
   elif [[ "$1" == "a" && "${@:(-2):1}" != "due" ]]; then
        todolist $@ due today && todolist l by p agenda
   // even more conditionals
}

alias t="todo"
gammons commented 5 years ago

this happens to me as well. one other option we could do is to include todos without a due date in the agenda view. maybe todos without a due date are things to be groomed?

phi12ip commented 4 years ago

I think adding a default due date, or viewing undated tasks in the agenda would be in conflict with the GTD workflow. In my interpretation, it comes down to the concept of keeping these things isolated:

  1. Doing planned tasks
  2. Receiving ad-hoc tasks
  3. Planning future tasks

Based on this, the agenda should only show things for today, or overdue events, so that you are not distracted by tasks you may need to be doing sometime in the future, and that are not 100% needed to be done today. Once the tasks on the agenda are completed you can start to tackle planning tasks that do not have a prescribed date.

Perhaps there could be another command to add an "ad-hoc" todo. Maybe something like:

ultralist adhoc <add todo text>

I've looked through the code, and I can tell how it works, but I don't write Go, so I'm not sure exactly which code would need to change but you could then assume in code that the user would be explicitly adding something that was due today, and have a different add function that doesn't do the "due" parsing and sets the due date to the current date.

Hope this is helpful. I'm working on a getting things done app written in Rust, and using this tool has been incredibly helpful to design out mine, so thank you very much for you work and providing it for others to learn from! (: