I’m new to Vikunja and I was wondering if a PR adding checklists to tasks would be welcome. I know it is currently possible to add check boxes in a list format in the task description with markdown like so:
* [ ] Item 1
* [ ] Item 2
However, I was thinking of something more user friendly for non-technical users.
The idea is to add something similar to checklists on Trello cards:
- Checklists would be in separate section from the description.
- Add multiple checklists and be able to name each of them.
- Item completion would be viewable in the list views like how it currently works for check boxes in the description.
- Update the Trello migration tool to use these checklists instead of adding the Trello card checklists to the description.
Ideas for future development:
- Assign users to specific checklist items.
- Convert a checklist item into a related task.
- Set due dates for checklist items? Might be too complicated. It would probably be better to create a separate sub-task at that point.
- Any other ideas welcome
Nice to have you!
With the newer versions (not yet released, but in unstable) there is a progress indicator on the top of the tasks and on the overview pages.
The solution for names of a checklist would be to just add a headline above the list.
We plan to change the editor a bit so that adding a checklist would be a bit more user friendly, more like in this example.
For the other ideas I think those are perfect use-cases to use sub tasks instead - maybe converting a checklist item to a sub task would make a great addition though.
Okay, that makes sense. Do you need help with changing the editor over to tiptap?
We might, yes. @dpschen had some ideas about it.
Can we make handling subtasks as convenient as checklists rather than adding an extra feature? I always hated this artificial distinction in task managers, why not simply list the subtasks themselves as a checklist?
I think we could add a checkbox next to the related tasks so that you can mark a subtask as done right from the parent task. The reason why they are separate from checklists is they are intended to be used when you want a subtask with all features of a task (comments, assignees, attachments, due dates, etc.). Checklists are intended more for use cases where an item belongs to a task and is more like a step to be done in order to do the actual task.
I think this distinction is artificial, and if the UX is done right there is no advantage of a separate checklist feature. Subtasks can just as well be steps of the actual task.
I do agree that not differentiate between checklists and subtasks would be preferable. There is a good reason we don’t do this right now though:
Imagine we would not separate the two concepts and we have a todo item that includes a subtask in the markdown description (aka what is right now a checklist item).
What would happen if the user deletes the line with the subtask from the markdown.
Should the subtask be completely removed? What happens if that subtask had additional information (relations / due date / own description / etc.).
Considering this I currently don’t have a good idea how we could combine these two concepts — markdown checklist items and subtasks — in a good way.
It could work if our description would be block based. Having tiptap as an editor and using a block based data format would be one step in this direction. But it will come with its own challanges.
Actually, I guess we can keep checklists in the markdown descriptions as is, in case somebody really wants them.
But the proper, user-friendly feature asked for in this thread would use subtasks - which really is just a matter of making task relations easier and quicker.
Would you say a first step in that direction would be to enable the “mark this task as done” checkbox for related tasks?
Yes, and when a related task is added it should immediately reopen the dialogue so one can add subtasks back-to-back without clicking.
This, together with proper indentation of subtasks in the list view (not only showing the immediate parent) would be very handy for quick collaborative project planning.