Commit Graph
6 Commits
Author SHA1 Message Date
Florian Wilde ac51753d53 feat(protokoll): Protokoll ansehen, mit Filtern und Mandantensicht
Prüfung / pruefung (pull_request) Canceled after 0s
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (pull_request) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
Geschrieben wurde es seit dem Datenmodell, ansehen konnte es niemand: wer
wissen wollte, wer wann eine Rolle geaendert hat, brauchte psql.

Neue Seite Verwaltung -> Protokoll: Volltext ueber Aktion und Lauftitel, Filter
nach Urheber und Zeitraum, fuenfzig Eintraege je Seite, neueste zuerst. Ein
Eintrag ohne Urheber steht als Systemlauf da und nicht als Luecke -- der
Zeitplan des Verzeichnisabgleichs hat keinen Menschen hinter sich.

Am Lauf selbst stehen seine Eintraege eingeklappt in der Abarbeitungsansicht.
Kein eigenes Recht dafuer: wer den Lauf sehen darf, darf auch sehen, was an ihm
geschehen ist.

Dafuer traegt Protokoll jetzt eine kundeId, wie CLAUDE.md es fuer jede
kundenbezogene Zeile verlangt. Ohne sie liess sich die Mandantensicht nicht
anwenden, ohne je Eintrag die Entitaet nachzuschlagen. Leer heisst global;
laufbezogene Eintraege bleiben ohne, weil der Lauf die bessere Quelle ist. Die
Migration fuehrt bestehende Eintraege nach -- an echten Daten gefahren, 59 von
733 bekamen einen Kunden.

Ein Eintrag, der sich keinem Kunden zuordnen laesst, wird einem beschraenkten
Benutzer nicht gezeigt: vorher/nachher koennen einen Hostnamen enthalten, und
bei einer Mandantengrenze wird im Zweifel zugemacht.

Keine Tabelle, sondern Karten: sieben Spalten sind bei 390 px nicht
darstellbar, ohne horizontal zu scrollen.

Im gebauten Stand durchgeklickt: blaettern, filtern, Werte aufklappen,
Abschnitt am Lauf, 390 px auf beiden Seiten ohne Scrollen.

Closes #35
2026-10-04 18:05:48 +02:00
florian.wilde f5936327a0 feat(schnellstart): Kacheln je Geraetetyp in der Oberflaeche pflegen (#44)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
2026-10-04 15:41:47 +00:00
florian.wilde 0060a55387 feat(mitarbeiter): Vorgesetzter auch fuer Personen ohne Verzeichnis (#43)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
2026-10-04 15:10:34 +00:00
florian.wilde 0fa41b9e08 feat(seed): mitgelieferte Vorlagen am Schluessel erkennen (#42)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
2026-10-04 14:49:00 +00:00
florian.wilde d8d5444e9f feat(vorlagen): Versionierung, Unveraenderlichkeit und JSON-Austausch (#23)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
2026-09-25 06:10:01 +00:00
florian.wildeandClaude Opus 5 7a0f875f55 feat(datenmodell): Schema, tagCodes und Geheimnisse (#20)
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
Vollständiges Datenmodell in deutscher Benennung: 20 Tabellen, 9 Aufzählungen,
eine Migration, dazu die framework-freien Helfer für tagCodes und Geheimnisse.

Regeln stehen zusätzlich in der Datenbank, nicht nur im Service: 12 CHECKs,
2 partielle Eindeutigkeitsindizes, 4 zusammengesetzte Fremdschlüssel. Die
Mandantengrenze ist damit strukturell erzwungen. Schrittergebnisse, Kommentare
und Protokolleinträge kaskadieren bewusst nicht — das Archiv ist das Gedächtnis
der Anwendung.

106 Tests, davon 42 gegen die echten Datenbankregeln.

Closes #6

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-24 23:11:58 +00:00