1
0
Fork 0
digital-anti-bad-habit-note.../_Templates/Folder Note.md
2024-12-03 18:58:57 -05:00

2.2 KiB

<%* let filename = tp.file.title let path = tp.file.folder(true) let splitpath = path.split("/") let unitindex = 2 if (splitpath.length > 2) { unitindex = 3 } if (splitpath.length > 3) { unitindex = 4 } if (path != "Notes" && path != "_Templates" && path != "Log") { %>

title: Contents

Chart

<%* if (splitpath.length == 5) { %>

let query = `
TABLE WITHOUT ID
	habit as habit,
	created_ts as time,
	unit as unit,
	quantity as quantity
WHERE 
	startswith(file.folder, this.file.folder)
	AND quantity != null AND unit != null
`;
let result = await dv.tryQuery(query);
let headers = ["Habit", "Created", "Unit", "Quantity"];
dv.table(result.headers,
		 dv.array(result.values)
			 .sort(r => r[2], "asc")
			 .sort(r => r[1], "desc")
			 .sort(r => r[0], "asc"));

<%* } else { %>

let query = `
TABLE WITHOUT ID
	nonnull(rows.habit)[0] as habit,
	split(rows.file.folder[0], "/")[2] as year,
	<%* if (splitpath.length > 2) { %>split(rows.file.folder[0], "/")[3] as month,<%* } %>
	<%* if (splitpath.length > 3) { %>split(rows.file.folder[0], "/")[4] as day,<%* } %>
	nonnull(rows.unit)[0] as unit,
	average(nonnull(rows.quantity)) as qty_avg,
	sum(nonnull(rows.quantity)) as qty_tot
WHERE 
	startswith(file.folder, this.file.folder)
	AND file.folder != this.file.folder
	AND quantity != null AND unit != null
GROUP BY habit 
	+ split(file.folder, "/")[2]
	<%* if (splitpath.length > 2) { %>+ split(file.folder, "/")[3]<%* } %>
	<%* if (splitpath.length > 3) { %>+ split(file.folder, "/")[4]<%* } %>
	+ unit
`;
let result = await dv.tryQuery(query);
let headers = ["Habit", "Year", 
				<%* if (splitpath.length > 2) { %>"Month", <%* } %>
				<%* if (splitpath.length > 3) { %>"Day", <%* } %>
				"Unit", "qty_avg", "qty_tot"];
dv.table(result.headers,
		 dv.array(result.values)
			 .sort(r => r[<% unitindex %>], "asc")
			 .sort(r => r[1], "desc")
			 <%* if (splitpath.length > 2) { %>.sort(r => r[2], "desc")<%* } %>
			 <%* if (splitpath.length > 3) { %>.sort(r => r[3], "desc")<%* } %>
			 .sort(r => r[0], "asc"));

<%* } %>

Navigation<%* } %>

<%* if (splitpath.length == 3 || splitpath.length == 2) {%><% "%" + "% Landmark %" + "%" %> <%} else {%><% "%" + "% Waypoint %" + "%" %><%} %>