Listing Meeting Notes Linked to Projects in a Specific Area

The setting

There are area notes, every area has a common tag “area” and its own tag. Example:

[[Area A]]
tags:
  - area
  - areaA

Then there are project notes, every project has a common tag “project”, its own tag, and a property called area containing a list of links to area notes (a project might belong to more than one area). Example:

[[Project A]]
tags:
  - project
  - projectA
area:
  - "[[Area A]]"
  - "[[Area B]]"
[[Project B]]
tags:
  - project
  - projectB
area:
  - "[[Area A]]"
  - "[[Area C]]"

Finally, there are meeting notes, these contain a tag for the project or area. (a meeting can focus on a project, on several projects, or on an entire area). Example:

date: YYYY-MM-DD
tags:
  - projectA
attendees:
  - "[[Person A]]"
  - "[[Person B]]"
  - "[[Person C]]"

What I’m trying to do

I’m trying to create a dataview query in my Area notes to list all related meeting notes. These meetings can be either directly tagged with the area’s tag or tagged with a project’s tag, where the project is linked to the area in its note.

I already have the following working:
Project notes have dataview queries to see the meeting notes related to that project:

table without id file.link as "Notes", dateformat(file.ctime,"yyyy-MM-dd") as "Meeting Date"
from #projectA AND "Projects/Meeting Notes"
sort file.ctime asc

Area notes contain a list of projects linked to that area

table without id file.link as "Projects", tags as "Tags"
WHERE contains(tags, "project") AND contains(area, this.file.link)
sort file.ctime asc

What I’m stuck on is how to list meeting notes for the area that are tagged with project tags, based on the relationship between the projects and the area, rather than having to tag the meetings with area-specific tags. In other words, what I am trying to solve is adding into area notes another query, finding their related meeting notes. To find area meeting is quite simple. By contrast, I can’t solve how to find meetings containing project tags, that are associated to a certain area inside the project note rather than in the meeting itself.

I don’t have a specific answer for your question, but I do have a similar use case and this is how I solved my issue.

For my notes is set them up like this:

[[Note Title]]

tags:
company:
company_area:
project:

If I have a meeting with a client about a project, and then the discussion turns into another project that we are working on together, I can link them together in the “company_area” or “project” property.

I then use a this dataviewjs on the client’s page to pull all the notes together.

// Notes DataviewJS
// render the table 
dv.table(
["File Name", "Company", "Area", "Project", "Tags"], // Table headers
dv.pages('"Your/Path"') // Table Search Path 
.where(p => p.file.outlinks.includes(dv.current().file.link)) //Conditions of the search, only want files that link to the current file that we are searching from. 
.sort(p => p.file.name, "asc") //Sort by file name
.map(p => [ 
`<a href="${encodeURI(p.file.link)}">${p.file.name}</a>`, //Wrap the file name in a link
p.company,
p.company_area, 
p.project, 
p.file.tags
])
)

And if I am in a Project page, I have an another query for related notes

// Projects DataviewJS
// render the table 
dv.table(
["File Name", "Status", "Company", "Area", "Start", "Completed"], // Table headers
dv.pages('"Your/Path"') // Table Search Path 
.where(p => p.file.outlinks.includes(dv.current().file.link)) //Conditions of the search, only want files that link to the current file that we are searching from. 
.sort(p => p.file.name, "asc") //Sort by file name
.map(p => [ 
`<a href="${encodeURI(p.file.link)}">${p.file.name}</a>`, //Wrap the file name in a link
p.status,
p.company,
p.company_area,
p.start, 
p.completed
])
)
1 Like

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