Implement Slack flavored markdown reporting for report tasks
This commit is contained in:
parent
2c25aabc6a
commit
11fbaa582e
8 changed files with 715 additions and 2 deletions
36
src/things/logbook.js
Normal file
36
src/things/logbook.js
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
var things = Application("Things");
|
||||
var logbook = things.lists.byName("Logbook").toDos();
|
||||
var objs = [];
|
||||
|
||||
var from = new Date();
|
||||
from.setHours(0);
|
||||
from.setMinutes(0);
|
||||
from.setSeconds(0);
|
||||
var to = new Date();
|
||||
to.setTime(from.getTime());
|
||||
to.setHours(23);
|
||||
to.setMinutes(59);
|
||||
to.setSeconds(59);
|
||||
|
||||
logbook.filter(task => {
|
||||
return task.completionDate() >= from && task.completionDate() < to;
|
||||
}).forEach(todo => {
|
||||
var proj = todo.project();
|
||||
var tags = [];
|
||||
if (proj) {
|
||||
tags.push(...proj.tagNames().split(', '));
|
||||
}
|
||||
var area = todo.area() || proj && proj.area();
|
||||
objs.push({
|
||||
id: todo.id(),
|
||||
title: todo.name(),
|
||||
notes: todo.notes() || null,
|
||||
status: todo.status(),
|
||||
completion_date: todo.completionDate(),
|
||||
project: proj && { id: proj.id(), title: proj.name() },
|
||||
area: area && { id: area.id(), title: area.name() },
|
||||
tags: [...tags, ...todo.tagNames().split(', ')].filter(t => t),
|
||||
});
|
||||
});
|
||||
|
||||
return JSON.stringify(objs, undefined, 2);
|
||||
Reference in a new issue