Feature/bug? Forward-only Cycling through TODO-Doing-DONE-plainText is problematic

Hello, I am unsure if this is a feature or a bug but when I cycle through the TODO DOING DONE and have the Timetracking activated, I have the following situation:

  • Ctrl+Enter advances it to DOING, timestamp is written in the .md file → correct/expected;
  • Ctrl+Enter again it goes to DONE + timestamp is updated → correct/expected;
  • If I want to restart working on the item I need to cycle forward through NONE (plain text) and then Ctrl+Enter again so it becomes a TODO again. A new Clock: line goes into the .md file;

I have the following issues I see with this approach (it might be a wrong understanding or jus my particular preference):

  1. if I realize the DOING-status task can’t be accomplished and want to revert it to TODO status I can only do it with cycling forward and the timetracking line in the .md file remains (for my particular case I would have expected it to be deleted, even if some work has been done on the task, reverting it back to a TODO should -in my opinion- reset the timetracking)

  2. if I Ctrl+Enter on the DONE task, it becomes plain text again and I would expect that the :Logbook: gets removed from the -now- plain text, which it doesn’t;

  3. from my pov, Going from DONE to Not-A-TODO-Anymore should remove the :Logbook: […] :end: section in the .md file or at least have it as an option in the Settings > Editor menu;

  4. I would expect another shortcut (Alt+Enter? as Shift+Enter is already used) to cycle back from DONE to DOING if, at some point, I decide more work needs to be done on that TODO or that someone marked it as DONE but in fact he shouldn’t have. This is the only case where I see it logical to add a new Clock: line in the :Logbook: […] :end: section for the TODO in the .md file;

  5. If Cycling from DONE to NONE would remove the :LOGBOOK: section then it becomes risky to inadvertently press Ctrl+Enter twice and remove one’s timetracking info so, in my opinion, reverting from DONE to DOING should only be possible by backwards cycling with a Alt?+Enter shortcut.

hmm, is this a topic for another section of this site?

Am I the only one having an issue with cycle-forward-only way to move a TODO task through its phases?

I might be among the few who look at how Logseq updates/modifies the .md files but surely adding a new clock every time a user happens to go one step too far (ex: pressed twice Ctrl+Enter and, instead of DOING, my task is now DONE so I need to press Ctrl+Enter until i reach to Doing again, which creates a new clock line in the .md file, as if this is another DOING session altogether) is not ok and is just polluting the markdown file unnecessarily.

That’s been normal and expected behavior. I came from org-mode in Emacs as did Tienson (developer), which is what Logseq gained some of its inspiration from. Each time you restart the time tracking feature it’ll log this as a new line entry in the MD file. This line is not a capture of the overall time spent, but it captures the timestamps of when the task went into an active working state and then left that working state. The timestamps are then substracted to get the total duration time for that working session, which then gets applied with the other lines to calculate total time.

The cycling of tasks IMO needs tweaking since it does not always follow that strict flow of “TODO>DOING>DONE”. There is a plugin out on the marketplace that allows you to setup your own custom workflow which may help in your case. The other option if you are not done with a task but need to move it back to the TODO state without cycling through DONE, click on the word “DOING” and that should cycle it back to TODO.

https://writequit.org/denver-emacs/presentations/2017-04-11-time-clocking-with-org.html

@Joe_Smoe Thanks for your answer and explanation.

BTW, I noticed that when a task is Clicked to Done with the mouse (that is, not advanced through DOING), there is no timestamp in the .md file so that one can later query when a certain task was completed. Of course, it can be worked around by not using the visual button to click it Done and using the Ctrl+Enter to bring it to Doing then Done but most people use the visual aid of the TODO button to just check it off. Moreover, many tasks don’t acutally have a DOING mode that can be recorded (ex: “TODO send happy birthday text to John!”). Can anything be done so that clicking a task DONE would record the timestamp?

There is a plugin that records the timestamp when a task is marked completed… I believe this is the one here = GitHub - DimitryDushkin/logseq-plugin-task-check-date

Thanks for all the answers, it is clear(Er) to me now how the Task Management feature is implemented in Logseq.

Here’s a kicker. It does do this when the task repeats. Would be nice to have it do that regardless.
On a repeating task it would add the line
* State "DONE" from "TODO" [2023-06-02 Fri 17:50]