73 lines
1.6 KiB
Markdown
73 lines
1.6 KiB
Markdown
|
|
## Log Table
|
|
|
|
```dataviewjs
|
|
const pages = dv.pages()
|
|
const table = dv.markdownTable(['Pomodoro','Duration', 'Begin', 'End'],
|
|
pages.file.lists
|
|
.filter(item=>item.pomodoro)
|
|
.sort(item => item.end, 'desc')
|
|
.map(item=> {
|
|
|
|
return [item.pomodoro, `${item.duration.as('minutes')} m`, item.begin, item.end]
|
|
})
|
|
)
|
|
dv.paragraph(table)
|
|
```
|
|
|
|
## Summary
|
|
|
|
```dataviewjs
|
|
const pages = dv.pages();
|
|
const emoji = "🍅";
|
|
dv.table(
|
|
["Date", "Pomodoros", "Total"],
|
|
pages.file.lists
|
|
.filter((item) => item?.pomodoro == "WORK")
|
|
.groupBy((item) => {
|
|
if (item.end && item.end.length >= 10) {
|
|
return item.end.substring(0, 10);
|
|
} else {
|
|
return "Unknown Date";
|
|
}
|
|
})
|
|
.map((group) => {
|
|
let sum = 0;
|
|
group.rows.forEach((row) => (sum += row.duration.as("minutes")));
|
|
return [
|
|
group.key,
|
|
group.rows.length > 5
|
|
? `${emoji} ${group.rows.length}`
|
|
: `${emoji.repeat(group.rows.length)}`,
|
|
`${sum} min`,
|
|
];
|
|
})
|
|
)
|
|
```
|
|
|
|
## Task Tracking
|
|
|
|
```dataviewjs
|
|
const pages = dv.pages();
|
|
const emoji = "🍅";
|
|
dv.table(
|
|
["Task", "Pomodoros", "Total"],
|
|
pages.file.tasks
|
|
.filter((task) => task.children.some((child) => child.pomodoro == "WORK"))
|
|
.map((task) => {
|
|
let p = task.children
|
|
.filter((child) => child.pomodoro == "WORK")
|
|
.map((child) => child.duration.as("minutes"));
|
|
let sum = p
|
|
.reduce((a, b) => a+b,0)
|
|
let pomodoros =
|
|
p.length > 5 ? `${emoji} ${p.length}` : `${emoji.repeat(p.length)}`;
|
|
return [task.text, pomodoros, `${sum} minutes`];
|
|
})
|
|
)
|
|
```
|
|
|
|
|
|
## Logs
|
|
|