ADR-0020: Produktname Flotten-Management + zweistufige Navigation

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Thomas Stallinger 2026-08-26 09:45:32 +02:00
parent e96fbd4733
commit d91167b7f0

View File

@ -0,0 +1,78 @@
# ADR-0020: Produktname „Flotten-Management" und zweistufige Navigation
**Status:** Beschlossen
**Datum:** 26.08.2026
## Kontext
ADR-0018 hatte die Umbenennung des Navigationseintrags „Geräte" zu „Flotte"
beschlossen, aber die Frage offengelassen, ob auch der Produktname selbst
(„Kundenplattform", bislang nur spontan gewählt) angepasst werden soll. Der
Nutzer entschied sich für „Flotten-Management" als sprechenderen Namen.
Parallel dazu war die bestehende Navigation eine einzige flache horizontale
Liste (`base.html`) ohne jede Gruppierung — mit wachsender Seitenzahl (aktuell
Flotte, Struktur, Gruppen, Installationsmedium, Organisation, plus Admin für
Superuser) wurde das unübersichtlich. Insbesondere lagen „Struktur"
(Organisationseinheiten) und „Gruppen" als gleichrangige Nachbarn neben
„Organisation", obwohl beide inhaltlich steuern, welche Merkmale ein Gerät
über seine OE-/Gruppen-Zugehörigkeit bekommt (siehe ADR-0012) — organisatorisch
näher an „Organisation" als eigenständige Themen.
## Entscheidung
**Produktname:** Nur das sichtbare Label wird geändert — die
Navigationsmarke im Header (`base.html`) und der (aktuell ohnehin dormante,
da `/docs` deaktivierte, siehe Sicherheits-Review 25.08.2026) FastAPI-Titel
heißen jetzt „Flotten-Management". Interne technische Namen bleiben bewusst
unverändert: Environment-Variablen-Präfix `KUNDENPLATTFORM_*`, systemd-Service/
-User/-Group `kundenplattform`, Verzeichnis `/opt/kundenplattform`,
Git-Repo-Name, Postgres-Datenbankname, Cookie-Name `kundenplattform_session`.
Begründung: keiner dieser Namen ist je für einen Kunden sichtbar, eine
komplette technische Umbenennung wäre ein eigenes Migrationsprojekt mit
Deploy-Risiko (koordinierter Neustart, Pfad-/Secret-Umzug) für rein
kosmetischen Nutzen.
**Navigation:** von einer flachen horizontalen Liste auf eine zweistufige
Struktur umgestellt: eine vertikale Primär-Spalte mit den Hauptkategorien
(Flotte, Organisation, Installationsmedium, Admin — letzteres weiterhin nur
für `is_superuser`), und bei Kategorien mit mehreren Unterseiten eine
horizontale Sekundär-Nav im Hauptbereich. „Struktur" und „Gruppen" werden
beide Unterpunkte von „Organisation" (neben der bestehenden
Stammdaten/Konten-Seite selbst). Die aktive Kategorie/Unterseite wird rein
aus dem URL-Pfad-Präfix abgeleitet (`base.html`, Jinja-`{% set %}` auf
`request.url.path`) — keine Router-/Kontext-Änderungen in den einzelnen
Seiten nötig, URLs bleiben unverändert (`/struktur`, `/gruppen` etc.), reine
Darstellungsänderung.
Der interne Admin-Bereich (`admin/layout.html`) hatte bereits eine eigene
horizontale Sub-Nav (Technik/Datenbank, Flotte, Flows, Kunden) — dieses
Muster diente als Vorbild für die neue Sekundär-Nav und wurde unverändert
übernommen (es erbt weiterhin von `base.html` und sitzt jetzt konsistent
unter derselben Primär-Spalte).
Layout technisch über ein schlankes eigenes Flexbox-CSS in `base.html`
umgesetzt (Pico CSS bringt kein Sidebar-Pattern mit) — nutzt ausschließlich
Picos bestehende CSS-Variablen (`--pico-primary-background` etc.), damit
automatisches Dark/Light-Mode-Verhalten erhalten bleibt. Auf schmalen
Bildschirmen (`max-width: 768px`) fällt die Sidebar per Media Query auf eine
horizontale Liste über dem Inhalt zurück.
## Konsequenzen
Reine Template-/CSS-Änderung (`base.html`, `app.py`-Titel) — keine
Datenbank-, API- oder Routing-Änderung, kein Migrationsbedarf, keine
bestehenden Links/Lesezeichen brechen.
Lokal verifiziert: alle 29 Templates parsen weiterhin fehlerfrei (Jinja-
Syntaxcheck), `base.html` mit gemocktem Request-Objekt für jeden
Primär-/Sekundär-Pfad gerendert (korrekte Aktiv-Markierung, Sekundär-Nav
erscheint nur unter „Organisation"), und eine Stichprobe realer Seiten
(Geräteliste, Organisation, Struktur, Gruppen, Admin-Kunden-Index) rendert
mit dem neuen Layout ohne Fehler. Live-Verifikation auf anode (echter
Login, visuelle Prüfung Light/Dark) folgt vor dem Deploy-Abschluss.
Wie schon in ADR-0018 festgehalten: sollte künftig auch der übrige
Sprachgebrauch der Anwendung (Seitentitel, Tabellenüberschriften,
Fehlermeldungen) auf „Flotten-Management" umgestellt werden sollen, ist das
eine eigene, hier nicht vorweggenommene Folgeentscheidung.