Baustein 6: Checklisten mit Durchlaeufen und PDF-Export
- Durchlauf aus einer Vorlage, mit Datum, Ticket und Kunde - Schritt fuer Schritt abhaken, Bemerkung je Schritt - Fortschritt gesamt und je Gruppe (Vorbereiten/Durchfuehren/Pruefen/Abschliessen) - Abschliessen erst, wenn alles abgehakt ist; Meldung nennt die offenen Schritte - Abgeschlossene Durchlaeufe sind gesperrt und bleiben als Nachweis - Titel und Schritttexte werden beim Start kopiert, nicht verwiesen - PDF-Export mit gezeichneten Ankreuzkaestchen und Unterschriftenzeilen - Gemeinsame PDF-Grundlage fuer alle kuenftigen Ausgaben - Ausbilder liest mit und darf das PDF abrufen, hakt aber nicht ab - Abgeschlossene Durchlaeufe zaehlen im Wochenfortschritt mit Behoben beim Durchstich: Die Fusszeile wurde unterhalb des Satzspiegels gesetzt, wodurch PDFKit je Fusszeile eine leere Seite anhaengte - aus zwei Seiten wurden sechs. Ein Test zaehlt jetzt die Seitenobjekte im PDF. 29 neue Tests, insgesamt 186. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ffbca01bdc
commit
b9d6041f3b
@@ -208,3 +208,52 @@ Der Abstand ist Absicht: Eine zu große Datei soll die **eigene**, verständlich
|
||||
Meldung bekommen und nicht den Rumpfgrößenfehler des Gerüsts, der nur im
|
||||
Serverprotokoll auftaucht. Zusätzlich prüft der Browser vorab, damit am
|
||||
Mobilfunk nicht erst 30 MB übertragen und dann abgelehnt werden.
|
||||
|
||||
## E23 · PDF mit Standardschriften statt eingebetteter Schrift
|
||||
|
||||
Die PDF-Ausgabe benutzt Helvetica, also eine der Schriften, die jeder
|
||||
PDF-Betrachter mitbringt. Das spart eine eingebettete Schriftdatei im
|
||||
Repository und hält die Dateien klein (ein Checklistenblatt wiegt rund 7 KB).
|
||||
|
||||
Der Preis ist der Zeichenvorrat **WinAnsi**. Enthalten sind alle deutschen
|
||||
Umlaute, ß, €, § und °. Nicht enthalten sind Zeichen wie ✓, ○, ▲ oder Emoji.
|
||||
Deshalb:
|
||||
|
||||
- `fuerPdf()` ersetzt typografische Feinheiten (Anführungszeichen,
|
||||
Auslassungspunkte, geschützte Leerzeichen) und wirft nicht Darstellbares weg.
|
||||
- Ankreuzkästchen und Haken werden **gezeichnet**, nicht gesetzt. Das sieht in
|
||||
jedem Betrachter gleich aus und ist unabhängig von der Schrift.
|
||||
|
||||
Sollte später ein Zeichen außerhalb von WinAnsi wirklich gebraucht werden, ist
|
||||
der Weg das Einbetten einer freien Schrift – nicht das Aufweichen dieser Regel.
|
||||
|
||||
## E24 · Fußzeilen brauchen einen aufgehobenen unteren Rand
|
||||
|
||||
PDFKit legt eine neue Seite an, sobald Text unterhalb des Satzspiegels
|
||||
geschrieben wird. Eine Fußzeile steht dort per Definition. Ohne Gegenmaßnahme
|
||||
entsteht je Seite und je Textaufruf eine leere Folgeseite.
|
||||
|
||||
`fusszeilen()` setzt deshalb `page.margins.bottom` kurzzeitig auf 0 und stellt
|
||||
den Wert danach wieder her. Ein Test zählt die Seitenobjekte im erzeugten PDF –
|
||||
damit fällt ein Rückfall sofort auf.
|
||||
|
||||
## E25 · Ein Durchlauf kopiert die Texte seiner Vorlage
|
||||
|
||||
`checkliste_lauf.titel` und `checkliste_schritt.text` werden beim Start aus der
|
||||
Vorlage übernommen, statt zur Anzeigezeit nachgeschlagen zu werden.
|
||||
|
||||
Grund: Ein abgeschlossener Durchlauf ist ein Nachweis. Er muss auch in zwei
|
||||
Jahren noch dasselbe aussagen – auch wenn die Vorlage unter `content/`
|
||||
inzwischen umformuliert, erweitert oder gelöscht wurde. Die Seite zeigt einen
|
||||
Hinweis, wenn es die Vorlage nicht mehr gibt, bleibt aber vollständig lesbar.
|
||||
|
||||
## E26 · Mitlesen und Bearbeiten sind getrennte Rechte
|
||||
|
||||
Beim Checklisten-Durchlauf fallen die beiden Rechte auseinander:
|
||||
|
||||
- **Lesen** darf der Eigentümer und sein Ausbilder (`laufZumLesen`).
|
||||
- **Bearbeiten** darf nur der Eigentümer (`laufZumBearbeiten`).
|
||||
|
||||
Der Ausbilder hakt also nichts für seinen Azubi ab. Im Nachweis soll keine
|
||||
Arbeit stehen, die der Azubi nicht selbst gemacht hat. Für die Abnahme gibt es
|
||||
die Praxisaufgaben – dort ist es genau andersherum.
|
||||
|
||||
Reference in New Issue
Block a user