marcusolsson / obsidian-projects

Plain text project planning in Obsidian
Apache License 2.0
1.42k stars 56 forks source link

Add a task progress indicator to notes in board view #897

Open H3mul opened 4 months ago

H3mul commented 4 months ago

Quick implementation of a feature I've been missing from projects - a Trello-style checkbox task progress indicator in Board view

A note with something like this:

- [ ] Task 1
- [x] Task 2
- [ ] Task 3

automatically gains this indicator:

image

Let me know if this is something that will benefit projects, and if you'd like anything more fleshed out (eg, a plugin setting to enable this functionality, etc), I'd be happy to work on this further.

Perhaps this should be a custom field/record value, so it can be used for filtering/sorting/coloring.

Acylation commented 3 months ago

Instead of going through note content to get the tasks, if we only want to get the progress, we can read it directly from metadata cache if I remembered correctly. Will commit.

H3mul commented 3 months ago

I experimented with some other task indicators, eg a task weight field that allows a task to contribute more to the board column total (useful for something like sprint planning):

image

If interested I can add to this PR, or a new one if you prefer

Acylation commented 3 months ago

Yeah directly commit on this is fine! I'm rewriting getTaskProgress using metadataCache, changes other than this won't cause conflicts.

Acylation commented 3 months ago

We're now handling "tasks" in multiple levels. The existing "total" was introduced to show the progress of the whole column, working alongwith a checkField. In this way, each card (aka record, note) is considered a task. While this PR will give users chances to view or manage the tasks within a note. Using the Indicator to visualize the progress of each note is pretty fine.

However, when talking about "weight", it becomes a little bit confusing. Projects once used the term priority in board view to store the dnd sorting sequence back to notes. Though priority was deprecated (see #584 and #586), now we still provide a similar order sync field binding, so we need to help users clearly distinguish them, stating that the new weight field has nothing to do with card order.

Then, regarding the idea of "allow a task contribute more to the total", I suggest that we directly adapt terms from scrum / sprint, like story point or pts, rather than tasks / task weight. We can provide a board option to display column progress based on note-level check status (current version), in-note tasks count (need to implement), or the story points (proposal on task weight).

H3mul commented 3 months ago

Hmm, I see the confusion.

I didn't intend for task progress icons to have anything to do with actual task completion or task closing - perhaps "task progress" is a misnomer, "step completion" or simply "checklist items" (this is what Trello uses) might be a better choice. This is semantic since we never actually use the title of this feature anywhere. But the point is, I agree that the task in the board is atomic, but I also allow that it may be composed of several discrete steps to complete - and this icon tracks that progress. I'm also against multiple leves of task handling - the task structure should be as flat as possible.

I'm also not against renaming "task weight" to "task/story point value", in my experience the two are equally established agile terms

I suggest:

H3mul commented 3 months ago

Sorry for the radio silence)

Implemented the proposal, still struggling to find an icon for "points" :) But IMO the terminology of "point" together with a weight icon sort of brings the agile concept across as is

image