feat: write template
This commit is contained in:
commit
a0a6d2cf84
98 files changed
+6609
No files matched your search
@@ -0,0 +1,111 @@
|
||||
#let timetable = state("6467cc7b-cfda-4f4d-a2fe-2e5e696dff91", (:))
|
||||
|
||||
#let format_int(x) = (
|
||||
if x == 0 [0] else if x > 0 [$+$#str(x)] else [#str(x)]
|
||||
)
|
||||
|
||||
#let addTimetable(times) = {
|
||||
timetable.update(tt => {
|
||||
for (date, tasks) in times.pairs() {
|
||||
tt.insert(date, tasks.filter(t => t.name != "Total"))
|
||||
}
|
||||
return tt
|
||||
})
|
||||
}
|
||||
|
||||
#let dayNr = state("345de571-1c11-4fba-9ebf-61c2088e286a", 0)
|
||||
#let entry(
|
||||
day: datetime,
|
||||
defaultPerson: str,
|
||||
supplementaryPersons: (:),
|
||||
tagesablauf,
|
||||
hilfestellungen,
|
||||
gut,
|
||||
schlecht,
|
||||
erkenntnisse,
|
||||
) = {
|
||||
dayNr.update(i => i + 1)
|
||||
context {
|
||||
if dayNr.get() > 1 { pagebreak(weak: true) }
|
||||
|
||||
heading(level: 2, [Tag #dayNr.get() | #day.display("[day].[month].[year]")])
|
||||
|
||||
show heading.where(level: 3): set heading(numbering: none, outlined: false)
|
||||
show heading.where(level: 3): set heading(numbering: none, outlined: false)
|
||||
|
||||
|
||||
let taetigkeiten = timetable.get().at(day.display("[day padding:none]-[month padding:none]-[year]"))
|
||||
|
||||
|
||||
let total_soll = (
|
||||
taetigkeiten.fold(
|
||||
0,
|
||||
(acc, t) => if t.keys().contains("should") { acc + t.should } else { acc },
|
||||
)
|
||||
/ 60
|
||||
) // total should hours
|
||||
|
||||
let total_ist = (
|
||||
taetigkeiten.fold(
|
||||
0,
|
||||
(acc, t) => if t.keys().contains("is") { acc + t.is } else { acc },
|
||||
)
|
||||
/ 60
|
||||
) // total should hours
|
||||
|
||||
figure(
|
||||
table(
|
||||
columns: (3fr, 1fr, 1fr, 1fr, 1fr),
|
||||
align: (left, center, center, center, center),
|
||||
table.header([Tätigkeiten], [Beteiligte Personen], [Aufwand SOLL [h]], [Aufwand IST [h]], [Differenz [h]]),
|
||||
|
||||
..taetigkeiten
|
||||
.map(t => (
|
||||
t.at("name"),
|
||||
if supplementaryPersons.keys().contains(t.at("name")) {
|
||||
(defaultPerson, ..supplementaryPersons.at(t.at("name"))).join(", ")
|
||||
} else {
|
||||
defaultPerson
|
||||
},
|
||||
str(t.at("should", default: "") / 60),
|
||||
str(t.at("is", default: "") / 60),
|
||||
if t.keys().contains("is") and t.keys().contains("should") {
|
||||
format_int((t.is / 60) - (t.should / 60))
|
||||
} else { "" },
|
||||
))
|
||||
.flatten(),
|
||||
[*Totaler Zeitaufwand*],
|
||||
[],
|
||||
str(total_soll),
|
||||
str(total_ist),
|
||||
|
||||
format_int(total_ist - total_soll),
|
||||
),
|
||||
caption: [Tätigkeiten Tag #dayNr.get()],
|
||||
)
|
||||
[
|
||||
=== Tagesablauf
|
||||
|
||||
#tagesablauf
|
||||
|
||||
=== Hilfestellungen
|
||||
|
||||
#hilfestellungen
|
||||
|
||||
=== Reflexion
|
||||
|
||||
_Was lief gut?_
|
||||
|
||||
#gut
|
||||
|
||||
_Was lief weniger gut?_
|
||||
|
||||
#schlecht
|
||||
|
||||
_Erkenntnisse_
|
||||
|
||||
#erkenntnisse
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user