1.8 KiB
1.8 KiB
Sortiert nach Status
let groups = dv.pages('#process/project').where(j => !j.file.name.contains("Template")).groupBy(p => p.status)
const sortBy = ["Backlog", "Aktiv", "Geschlossen", "Abgewiesen", "Archiv"];
const sortByObject = sortBy.reduce((obj, item, index) => { obj[item] = index
return obj
}, {})
groups.values.sort((a, b) => sortByObject[a["key"]] - sortByObject[b["key"]]);
//for (let group of dv.pages('"Areas"').where(j => j.category == "Projekt").groupBy(p => p.projectStatus)) {
for (let group of groups) {
dv.header(3, group.key);
let projects = new Set();
for (let projekt of group.rows) {
let total = projekt.file.inlinks.where(j => dv.page(j).category == "Aufgabe").length
let open = projekt.file.inlinks.where(j => dv.page(j).category == "Aufgabe")
.where(j => dv.page(j).status != "Geschlossen")
.where(j => dv.page(j).status != "Abgewiesen")
.length
let progress = Math.round((total-open)/total*100,0)
let current = total-open
if (total > 0) {
projects.add([projekt.file.link, total, open, "<progress max=" + total + " value=" + current + "> </progress> " + progress + "%", projekt.Progress, projekt.Target])
} else {
projects.add([projekt.file.link, total, open, "Keine Tickets", projekt.Progress, projekt.Target])
}
}
dv.table(["Projekt", "Total", "Offen", "Progress", "Progress", "Target"], Array.from(projects))
}
Aufgaben
let aufgaben = new Set();
for (let aufgabe of dv.pages('"Areas"').where(a => a.category == "Aufgabe")) {
let total = aufgabe.file.outlinks.length
if (total == 0) {
aufgaben.add([aufgabe.file.link, aufgabe.category, aufgabe.status])
}
}
dv.table(["Aufgabe", "Category", "Status"], Array.from(aufgaben))