62 lines
3.7 KiB
Markdown
62 lines
3.7 KiB
Markdown
# #022 Schnellstart je Gerätetyp pflegen
|
|
|
|
**Status:** erledigt
|
|
**Im Tracker:** [#34](https://git.wilde-server.de/florian.wilde/Laufzettel/issues/34)
|
|
**Meilenstein:** v0.2.0
|
|
**Labels:** phase-2, frontend, backend
|
|
**Geschätzt:** 3 h **Tatsächlich:** 1 h 10 min
|
|
|
|
## Ziel
|
|
|
|
Welche Vorlagen auf der Geräteseite als **Schnellstart** erscheinen, steht in `GeraetetypVorlage` —
|
|
und lässt sich nur über den Seed setzen. In der Oberfläche gibt es dafür nichts. Wer eine eigene
|
|
Vorlage als Schnellstart für Notebooks haben will, kommt nicht heran; wer eine der sieben
|
|
Seed-Vorlagen dort loswerden will, auch nicht.
|
|
|
|
Aufgefallen beim Schreiben der Anleitung in [#018](018-e2e-anleitung-pdf.md): Kapitel 03 beschreibt
|
|
den Schnellstart, konnte aber nicht sagen, wer ihn einrichtet.
|
|
|
|
## Aufgaben
|
|
|
|
- [x] Eigene Seite **Verwaltung → Schnellstart** (kein Abschnitt unter Einstellungen: acht Gerätetypen
|
|
mit je einer Liste sind zu viel für eine Seite, die schon den Moduswechsel trägt)
|
|
- [x] Nur **veröffentlichte**, nicht archivierte Vorlagen zur Auswahl; die Reihenfolge ist die
|
|
Reihenfolge der Kacheln (`position`)
|
|
- [x] Recht `verwaltung`, Änderung ins `Protokoll`
|
|
- [x] Der Seed legt die Vorgaben weiter an, überschreibt aber nie eine im Betrieb geänderte
|
|
Zuordnung — dieselbe Regel wie für alles andere im Seed
|
|
- [x] Anleitung Kapitel 03 und 07 nachziehen
|
|
|
|
## Akzeptanzkriterien
|
|
|
|
- [x] Test: eine zugewiesene Vorlage erscheint als Kachel auf der Geräteseite des passenden Typs
|
|
- [x] Test: eine archivierte Vorlage verschwindet aus dem Schnellstart, ohne dass jemand aufräumt
|
|
- [x] Test: `LESER` und `TECHNIKER` dürfen nicht ändern
|
|
|
|
## Beim Umsetzen dazugekommen
|
|
|
|
- **Die Reihenfolge läuft über Hoch und Runter, nicht über Drag & Drop.** Der Vorlagen-Editor
|
|
benutzt dnd-kit, weil dort hundert Schritte in Abschnitten liegen; hier sind es zwei bis vier
|
|
Kacheln, und zwei Knöpfe sind am Handy verlässlicher als eine Ziehgeste neben einer scrollenden
|
|
Seite.
|
|
- **`Einstellung.schnellstartGepflegt` als Marke.** Eine fehlende Zeile in `GeraetetypVorlage` sagt
|
|
nicht, ob sie noch nie da war oder bewusst entfernt wurde — ohne Marke käme eine entfernte Kachel
|
|
beim nächsten Seed-Lauf zurück. Gesetzt wird sie **auch bei unverändert gespeicherter Liste**: das
|
|
Speichern selbst ist die Aussage „ich pflege das jetzt“.
|
|
- **Gespeichert wird die ganze Liste, nicht Zeile für Zeile.** `position` kommt aus der Reihenfolge
|
|
des Formulars; zwei Wahrheiten über die Reihenfolge gäbe es sonst.
|
|
- **Das Durchklicken des gebauten Stands hat einen echten Fehler gefunden**, den die Suite nicht
|
|
gesehen hätte: die Umsortierung wurde nicht gespeichert. Altdaten tragen mehrere Zeilen auf
|
|
`position` 0 — der Seed zählt je Vorgabe von 0, und ein Beispielskript legte eine zweite dazu. Bei
|
|
gleicher Position ist die Reihenfolge in Postgres nicht festgelegt, und das Lesemodell gab die
|
|
Zeilen anders zurück als der Dienst. Der Vergleich „unverändert" hielt die Umsortierung deshalb
|
|
für einen Leerlauf: die Marke wurde gesetzt, geschrieben wurde nichts. Behoben durch einen
|
|
eindeutigen Tiebreak (`position`, dann `vorlageId`) in **beiden** Abfragen.
|
|
- Dabei fiel auf, dass ich die Ursache zuerst falsch benannt hatte: eine zusätzliche Prüfung auf
|
|
aufeinanderfolgende Positionen behebt den Fehler **nicht** (Gegenprobe gefahren, Tests blieben
|
|
grün). Sie zieht nur alte Positionen gerade; der Kommentar sagt das jetzt so, und ein eigener Test
|
|
deckt genau das ab.
|
|
- Zwei der drei Akzeptanzkriterien waren schon durch `tests/geraeteseite.test.ts` gedeckt — die
|
|
Kachel am passenden Typ und das Verschwinden einer archivierten Vorlage. Das stand bei
|
|
[#014](014-qr-tags-geraeteseite.md) schon richtig im Leseweg; gefehlt hat nur die Pflege.
|