naggie / dstask

Git powered terminal-based todo/note manager -- markdown note page per task. Single binary!
https://calbryant.uk/blog/dstask-a-taskwarrior-alternative/
MIT License
788 stars 47 forks source link

Due date #54

Open strogiyotec opened 3 years ago

strogiyotec commented 3 years ago

Good day, I can't find this information in help output. In task warrior it is possible to specify due date for tasks , something like due:tom due:today, it's helpful for creating todolist for tomorrow. Is it possible to do it using dstask . thanks in advance

dontlaugh commented 3 years ago

It is not a feature right now, but could be added to the parser code in cmdline.go

naggie commented 3 years ago

So the task doesn't appear in any default view until tomorrow?

strogiyotec commented 3 years ago

@naggie I'm not sure, \ for now when I add a task I add a +today tag in order to filter them dstask +today However , in the day after tasks still have a tag today so using tag is not really helpful. Also something like tag tomorrow will be great. like I added a tag tomorrow for task and day after tag will be changed to today

naggie commented 3 years ago

I see, I'd rather not overload tags so the syntax would indeed be due:tomorrow or similar. Is the idea to highlight tasks that must be done tomorrow, or to defer tasks until tomorrow?

If it's the latter I suggest it's called defer: defer:tomorrow

strogiyotec commented 3 years ago

@naggie it would be great to defer them I think , but in case of due:today tasks maybe it makes sense to highlight them ?

naggie commented 3 years ago

I think due dates (deadlines) are distinct from deferred tasks which should tracked separately.

Highlighting with an asterisk or something might work. I probably won't implement this until recurring and dependent tasks are implemented though.

cgardner commented 3 years ago

@naggie, @dontlaugh so is the due property when we edit tasks just a placeholder? It's in all of the tasks.

It's in the code too here: https://github.com/naggie/dstask/blob/master/task.go#L53

naggie commented 3 years ago

It's a placeholder for now.

dontlaugh commented 3 years ago

Can anyone recommend a good "human readable datetime" library for Go?

ghistes commented 3 years ago

What is the currrent state of due-dates? I am not using the current HEAD, but the latest release v0.23.2 and due dates do not work at all there. This could be a deal-breaker for me...

naggie commented 3 years ago

Not implemented yet. Still planned.

paride commented 3 years ago

Just a comment on this feature. Taskwarrior due dates have "end of day" deadlines, so a due:today task which is meant to be done today appears as expired from the very beginning, as it was due today at 0:00. Similarly a due:tomorrow task which is meant to be done sometime tomorrow will be already expired tomorrow morning, and appears to be due by midnight today.

I personally find this annoying, and I know I'm not alone: there are Reddit threads on this and closed issues in Taskwarrior issue tracker. The answer from the taskwarrior devs is that in taskwarrior due dates are by convention dates at which the task should be done already, and encourage the the use of aliases like due:eod for tasks to be done today. I understand that they don't want to break compatibility, and due:eod kind of works, but it's not very flexible, e.g. there isn't an universal "end of" modifier, and only some special cases are covered (eod, eow, eoy, ...), there's no "end of tomorrow" or "end of Thursday".

Please consider defaulting to "end of day" deadlines when implementing this feature, instead of using Taskwarrior-like "beginning of day" deadlines, or at least consider make it configurable from the very beginning of the implementation to avoid getting stuck with defaults that do not work well for several people. Thanks!

Dieterbe commented 3 years ago

interesting. I can see how both can make sense. If it involves other people (e.g. completing a document and sending it to someone, or doing an assignment and submitting it to a teacher) and it's due "today" or "tomorrow" i think of that has needing to have been sent by this morning or tomorrow morning, respectively. But other things - and i'm not sure how to label them. maybe things that need to be filed electronically or deadlines of a regulatory/legal nature - i think of them as "end of day" due dates. e.g. filing tax returns

Dieterbe commented 3 years ago

another thing on my mind... "due date" is not the same as "do date" (even though in OP they are comingled)

I think of it this way:

To put it a bit more mathematical: considering

tnow = current time
tdue = due date
tdo = do date
x = time of execution of task

x is valid when
tnow < x < tdue (implies tnow < tdue)
tdo < x

I have a few tasks where do dates make more sense than due dates. for example when i have to remind people to do something (e.g. a certain amount of days before something is due, and you don't want to ask "too soon"), or when something external needs to happen first.

paride commented 3 years ago

@Dieterbe AIUI the "deferred tasks" mentioned at https://github.com/naggie/dstask/blob/master/etc/FUTURE.md would allow to set a "do date" (mock syntax: defer:2021-06-21 due:2021-06-21 celebrate the summer solstice).

Dieterbe commented 2 years ago

@naggie :

I probably won't implement this until recurring and dependent tasks are implemented though.

Is there a specific technical or conceptual relationship between recurring/dependent tasks (#12) and due dates (and/or defer dates) ? Or are you just saying that because you personally consider the recurring/dependent functionality more useful/important?

naggie commented 2 years ago

Is there a specific technical or conceptual relationship between recurring/dependent tasks (#12) and due dates (and/or defer dates) ? Or are you just saying that because you personally consider the recurring/dependent functionality more useful/important?

Just the latter. No objection to any order