// SPDX-FileCopyrightText: 2025 Gero Beckmann // // SPDX-License-Identifier: MIT #let oral-post-exam( lecture: "", // Fach date: datetime(year: 0, month: 1, day: 1), // Prüfungsdatum examiner: "", // PrüferIn (Prof) assistant: "", // BeisitzerIn did_pass: none, // Bestanden? true || false exam_duration: duration(minutes: 0), // Prüfungsdauer attendance: (: /* Veranstaltung, Jahr, regelmäßig besucht? */ "Vorlesung": (year: "", did_attend: ""), "Übung": (year: "", did_attend: ""), "Tutorium": (year: "", did_attend: ""), ), preparation_time: [ // Wie lange und wie hast alleine bzw. mit anderen vorbereitet? ], agreements: [ // Fanden vor der Prüfung Absprachen zu Form oder Inhalt statt? Wurden sie eingehalten? ], preparations: [ // Welche Tips zur Vorbereitung kannst Du geben? ], examiner_behavior: [ // Wie war der Prüfungsstil des Prüfers / der Prüferin? ], examinee_behavior: [ // Kannst Du Ratschläge Verhalten in der Prüfung geben? ], doc ) = [ #let checkbox(checked: false) = if (checked) {$times.square$} else {$square$} #let events = ( "Vorlesung": (year: "", did_attend: ""), "Übung": (year: "", did_attend: ""), "Tutorium": (year: "", did_attend: ""), ..attendance ) #show : if date.year() > 0 {date.display("[day].[month].[year]")} #show : examiner #show : assistant #show : if exam_duration.minutes() > 0 [#exam_duration.minutes()] #show : preparation_time #show : agreements #show : preparations #show : examinee_behavior #show : examiner_behavior #show : [ *Bestanden? #checkbox(checked: did_pass == true) Ja / #checkbox(checked: did_pass == false) Nein* ] #show : it => if lecture.len() > 0 { box[#checkbox(checked: true) #lecture] } else {it} #show : it => { let g = it.fields() let _ = g.remove("children") let _ = g.remove("label") table(..g, ..it.fields().children.at(0).children, ..events.pairs().map(((location, (year, did_attend))) => (box(height: 1.2em)[*#location*], [#year], [#did_attend])).flatten() ) } #include "muendliche-nachpruefung.typ" #doc ]