Files
Laufzettel/docs/issues/023-protokoll-ansicht.md
florian.wilde e1f244e4e8
Prüfung / pruefung (push) Canceled after 0s
Prüfung / e2e (push) Canceled after 0s
feat(protokoll): Protokoll ansehen, mit Filtern und Mandantensicht (#45)
2026-10-04 16:06:26 +00:00

3.0 KiB

#023 Protokoll ansehen

Status: erledigt Im Tracker: #35 Meilenstein: v0.2.0 Labels: phase-2, frontend

Ziel

Laufzettel schreibt ein Protokoll über alles, was nachvollziehbar bleiben muss — Rollenänderungen, veröffentlichte Vorlagen, archivierte und zurückgeholte Läufe, Verzeichnisquellen, den Moduswechsel. Ansehen kann es niemand. Es gibt keine Oberfläche dafür; wer wissen will, wer wann eine Rolle geändert hat, braucht psql.

Aufgefallen beim Schreiben der Anleitung in #018.

Geschätzt: 4 h Tatsächlich: 1 h 50 min

Aufgaben

  • Admin → Protokoll: Liste mit Zeitpunkt, Urheber, Aktion, betroffener Zeile, umblätterbar
  • Filter nach Zeitraum, Aktion und Urheber; Volltext über die Aktion
  • Die Mandantensicht gilt auch hier: ein Eintrag zu einem fremden Kunden ist nicht sichtbar
  • Recht verwaltung — das Protokoll sagt, wer was getan hat, und ist damit selbst eine Auskunft über Menschen
  • Ein Eintrag ohne Urheber (Systemlauf, etwa der Zeitplan) wird als solcher gezeigt, nicht als Lücke
  • Am Lauf selbst: die Einträge dieses Laufs in seiner Abarbeitungsansicht, eingeklappt

Akzeptanzkriterien

  • Test: ein Eintrag eines fremden Kunden erscheint nicht
  • Test: TECHNIKER kommt nicht auf die Seite
  • Test: ein erzeugtes Passwort taucht in keinem Eintrag auf
  • Am Handy kein horizontales Scrollen

Beim Umsetzen dazugekommen

  • Protokoll hat jetzt eine kundeId. CLAUDE.md verlangt sie für jede kundenbezogene Zeile; das Protokoll hatte sie nicht, und damit ließ sich die Mandantensicht nicht anwenden, ohne je Eintrag die Entität nachzuschlagen. Leer heißt global (Einstellungen, Benutzer, kundenfreie Vorlagen, Schnellstart). Zwanzig Schreibstellen setzen sie jetzt; laufbezogene Einträge bleiben ohne, weil der Lauf die bessere Quelle ist — er kann seine Zuordnung nicht verlieren.
  • Die Migration führt bestehende Einträge nach, über den Lauf und über die fünf kundentragenden Entitäten. An echten Daten gefahren: 59 von 733 Einträgen bekamen einen Kunden.
  • Nicht zuordenbare Einträge werden verborgen, nicht gezeigt. 414 Einträge in der Entwicklungsdatenbank zeigen auf längst gelöschte Testgeräte und lassen sich keinem Kunden zuordnen. vorher/nachher können einen Hostnamen enthalten — bei einer Mandantengrenze wird im Zweifel zugemacht, nicht aufgemacht.
  • Keine Tabelle, sondern Karten. Sieben Spalten sind bei 390 px nicht darstellbar, ohne horizontal zu scrollen, und genau das ist ausgeschlossen.
  • Das Mandanten-Kriterium ist auf der Seite heute strukturell erfüllt, weil sie verwaltung verlangt und ein ADMIN ohnehin alle Kunden sieht. Der Filter sitzt trotzdem im Lesemodell und ist dort geprüft — ein Lesemodell trägt seine Sicht selbst, und wenn das Recht je weiter gefasst wird, hält die Grenze.