Tasks - levels of group using tasks queries (or dataview of not possible otherwise)

What I’m trying to do

Simply put I try to group tasks using both the ‘assigned to’ inline field as a ‘project’ inline field.
Example of tasks would be:

- [ ] Task 1 [assigned:: [[person1]]] [project:: [[project1]]] #projectTask
- [ ] Task 2 [assigned:: [[person1]]] [project:: [[project2]]] #projectTask
- [ ] Task 3 [assigned:: [[person1]]] [project:: [[project1]]] #projectTask
- [ ] Task 4 [assigned:: [[person2]]] [project:: [[project1]]] #projectTask
- [ ] Task 5 [assigned:: [[person2]]] [project:: [[project1]]] #projectTask
- [ ] Task 6 [assigned:: [[person2]]] [project:: [[project2]]] #projectTask
- [ ] Task 7 [assigned:: [[person2]]] [project:: [[project2]]] 

I want to list the tasks as follows:

  • project 1
    • person1
      task 1
      task 3
    • person2
      task 4
      task 5
  • project 2
    • person1
      task 2
    • person2
      task 6

Ideally I would like to filter for those tasks with tag #projectTask, that is why task7 is excluded in the above.
Additionally, I would like to keep it simple, for the queries might be adjusted by others, who are less willing to spend time on tweaking rather complex queries.

Things I have tried

Solutions using tasks

I tried the queries for tasks itself, but I can’t get that working using inline fields (cf. dataview). Otherwise, that would be ideal, for tasks allows to have levels of grouping.
I tried to use the tasks plugin by adding ‘tags’ to the tasks, as in

- [ ] Task 1 [assigned:: [[person1]]] [project:: [[project1]]] #projectTask #[[person1]] #[[project 2]]

That would work, I I could refine the grouping, as in ‘group by tags’ where tag is of type ‘teammember’. So that the query should check whether tag is a linked note and whether that linked note is a teammember, which is defined as a property of that person note (aka type ‘teammember’).
The same for the first grouping ‘project’ where the linked note has a property ‘type: project’.

solutions using Dataview

These queries become quite complex, even more when trying to group using multiple levels. So that seems a no go.

searching the dos

  • tried to read the docs for custom grouping but I don’t seem to understand it enough to see whether that is possible

  • dataview and grouping involves rows. as found here, but again, this seems a rather complicated query to maintain let alone others to tweak.

  • I haven’t tried, but grouping the tags of linked notes, aka #[[person1]], if and only if that linked note is found in folder A, might be an option.

And as it goes, I was brought to a partial solution in this post, where one explains how to use the description and the match to execute queries.

group by function (task.description.match(/\[assigned::(.*?)\]/g) || ['No links'])
group by function (task.description.match(/\[project::(.*?)\]/g) || ['No links'])

The solution therefore is:

  • add unique inline fields as required
  • group by using a match in the description of the task

No need to query the property of the linked note, for it is linked using the inline fields.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.