-
-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Task recurrence still broken on v3 #204
Comments
OK there might be a few more bugs. Recurrence totally slipped my mind. Thanks for opening this |
Did we solve your problem? Consider sponsoring my work through github sponsors 😄 |
Thanks for looking into this. Have updated dooit and will test the recurrence functionality out over the next few days. |
Now that the recurrence is working (I think) it's different to how I thought it would work. I imagined it would work something like Todoist where recurring todos once marked completed stay completed until their new due date (say 2 days time) where they are then marked as uncompleted. From what I can see dooit leaves the todo in an uncompleted state, not letting you mark the todo as completed, then just advances the due date, is that correct? |
True, I was actually going in the same direction but I was not able to implement it properly and there was one other issue open so I first made the priority to push a patched release first Maybe you can answer it. For example, you have a todo for a daily task. You mark it complete for today. and then, well since you're free and you do want to mark future recurrence as completed as well, how do you do that? User workflow: Note
marks completed
Now how do the user mark it complete for the day after tommorow? |
Also remembered another use case: Lets say you set recurrence for every 1 month or 6 months or any other large value, then you'll only be reminded about that task on the exact day. Which is fine for a lot of cases, but might not be for some cases? |
I completely understand where you're coming from. I took another look to see how todoist handles recurring tasks and it seems to be much like how you've implemented in dooit so I was wrong there. You'e just able to use filters to hide recurring completed tasks and also the due date doesn't get incremented each time you complete on the same day. Looking at dooit I don't think there's really an easy way to implement having the option of being able to hide completed recurring tasks as it doesn't track todos completion history. I guess you could have a 3rd state (completed, uncompleted, recur_completed?) although I suspect even this might have issues. |
Hmm...No I think this will make things complicated a lot + will be a breaking change I first thought maybe the user can set a threshold as to when to show the task as completed or not And I dont want to mess up the implementation too much yk which will make it hard for devs and users as well haha However...I have some ideas which are just visual changes via scripts: 1. Push down recurrence TasksThe simplest thing I could think of was to make a plugin/script which will do the following steps:
This means frequently done tasks will still be in the lists 2. Psuedo Complete TasksThis script will take an initial threshold of timedelta and will format the todos based on that it'll dimmify the task + set a custom icon for the status as well. This is like a combination of two formatters but only for recurrence tasks: First, if you remember the Strike Completed formatter, we'll strike and dim alll the tasks which are
Second, we'll use the Status Icons formatter which will set a custom icon for todos which follow the same 2 conditions as above. Since we know that recurrence items are always pending tasks, we'll override the pending icon only :D !Bonus!: Ofcouse both of the above said things can be done simultaneously as well Lemme know your thoughts on this + if something was unclear :) |
Not sure about suggestion 1, as it wouldn't be obvious to users why certain tasks are being pushed down in the list. It'll act as a type of sub-sort to their current sort selection. Could be quite confusing? I think I prefer suggestion 2 with a custom status icon which would give users an indication why the recurring task is struck through/dimmed. However won't this now require recurring todos being marked as complete, meaning users will have to wait until it's due again to be able to complete it again and require code to mark them as pending when the due date comes around? Also the timedelta of 1 week or whatever seems completely arbitrary to me and most likely confusing once again for users? Am happy to have a go at working on this if we can find a good way of implementing it which doesn't have to be shoe horned into your existing code or end up confusing users. I was going to look at how TimeWarrior handled recurring tasks but then I think I looked into it a few years ago and the answer was...poorly. |
Ofcourse this is not the default/baked-in implementation, users can add the script if you want :) Just like the striked completed tasks
No. As I mentioned, this is just a visual change. Just the icon is replaced with something else. Users can still complete the task and the due task will still remain pending and the due date will be moved fwd. We are just fancy decorating the task so its just LOOKS LIKE ITS COMPLETE. again, this is an optional thing if the user chooses to include this behaviour
Sure. I can help ya out, as I mentioned, I think the docs is still lacking in terms of developer guide so It'll be great for me as well to check out things as to whats needeed more
Yea I think there is not any |
Also, I've started to work on two plugins. Hopefully I'll have a basic version by today so maybe that can be something you can check out as well. But for now the most relevant things to look would be: Note You might see |
Got it, so it'll just be another script using the API to go in the config. One case which comes to mind if you're going down this route is that won't this only work if the user doesn't close down and reopen dooit? Soon as they do then with the task still in the pending state it'll lose the visual change to show it's a "completed" recurring task and revert visually to being pending again right? |
I'm not sure if I understand correctly.
I guess you're thinking it something like this:
But the formatters work on a condition, todo will be formatted based on the due date. So it doesn't matter if the app is closed or open since the due date is changed. One good example is the overdue status icon, it changes if the due date has already passed. Think of the visual changes as the same, but on more items (ie strike, dimmification on the description etc) |
You're description of my thinking is correct. I'll wait until you push the scripts onto github and hopefully I can get my head around it then! |
Expected behaviour:
Set recurrence to 1d on a task and due date to today. Complete the task. The next day expect the task to be marked uncompleted and due date changed to the new day.
Current Behaviour:
The next day the task is still in it's completed state and due date is still set to yesterday. Closing down dooit and reopening doesn't change the tasks state.
The text was updated successfully, but these errors were encountered: