Phase 3: Einsatz- und Uebungserfassung
Schnellerfassung im Alarmfall, sechs Zeitstempel mit Ausrueckzeit, Anfahrt und Hilfsfrist, Staerke nach FwDV 3, Personalvorschlag mit Qualifikationsstand, Einsatzbericht als PDF, Jahresexport fuer die Gemeinde, Statistik und Uebungen mit Anwesenheitsliste. Dazu das Einsatzportal fuer Fremdwehren: ein signierter Link ohne Anmeldung, zeitlich und mengenbegrenzt, der Stichwort, Ort, Zeiten und Lagemeldungen zeigt und Meldungen mit Foto annimmt. Es sind die ersten oeffentlich erreichbaren Endpunkte in FLORIAN. Acht neue Tabellen, alle mit organisationId und Row Level Security. Ein freigegebener Einsatzbericht ist unveraenderlich; ein Datenbanktrigger setzt das durch. Koordinaten liegen doppelt — als Dezimalgrad und als PostGIS-Punkt, zusammengehalten von einem Trigger. 57 neue Tests (32 Unit, 14 gegen eine echte Datenbank, 11 E2E). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
bc62a9c1e8
commit
91954c402b
+201
-8
@@ -1,9 +1,9 @@
|
||||
# Anleitung
|
||||
|
||||
Bedienung von FLORIAN, Stand Phase 2 (Version 0.3.0). Die Bilder zeigen die
|
||||
Bedienung von FLORIAN, Stand Phase 3 (Version 0.4.0). Die Bilder zeigen die
|
||||
Beispielwehr aus dem Seed und werden mit `npm run screenshots` neu erzeugt.
|
||||
|
||||
> Einsätze, Atemschutz und die Kiosk-Oberfläche kommen in den folgenden Phasen
|
||||
> Atemschutz, Karten und die Kiosk-Oberfläche kommen in den folgenden Phasen
|
||||
> dazu. Siehe [ROADMAP.md](ROADMAP.md).
|
||||
|
||||
---
|
||||
@@ -70,7 +70,7 @@ derselben Installation hat, ist nicht sichtbar und nicht abfragbar.
|
||||
### Die Seitenleiste
|
||||
|
||||
Links stehen alle Module. Was noch nicht existiert, ist ausgegraut und trägt
|
||||
rechts sein Phasenkürzel — `P3` heißt „kommt in Phase 3".
|
||||
rechts sein Phasenkürzel — `P4` heißt „kommt in Phase 4".
|
||||
|
||||
Was jemand überhaupt sieht, hängt an seinen Rechten. Ein einfaches Mitglied
|
||||
sieht die Mitgliederliste, aber nicht das Protokoll. Wichtig zum Verständnis:
|
||||
@@ -585,7 +585,200 @@ Ersatz da ist. Der Knopf dazu steht in der Zeile.
|
||||
Voraussetzung ist, dass am Gerätetyp eine Lebensdauer hinterlegt ist
|
||||
(Kapitel 5).
|
||||
|
||||
## 18. Rollen und was sie dürfen
|
||||
---
|
||||
|
||||
## 18. Einen Einsatz erfassen
|
||||
|
||||

|
||||
|
||||
Im Alarmfall zählt eines: dass der Einsatz überhaupt angelegt wird. Die
|
||||
**Schnellerfassung** fragt deshalb nur drei Dinge:
|
||||
|
||||
1. **Stichwort** — das, was die Leitstelle durchgegeben hat: „B 3 Wohnhausbrand"
|
||||
2. **Ort** — Straße, Hausnummer, gegebenenfalls das Objekt
|
||||
3. **Fahrzeuge** — welche ausgerückt sind
|
||||
|
||||
Die Alarmzeit ist der Moment des Anlegens. Alles andere — Mannschaft, Zeiten,
|
||||
Bericht — wird später nachgetragen. Der Einsatz bekommt sofort eine
|
||||
fortlaufende Nummer im Format `JJJJ-NNNN`.
|
||||
|
||||
**Koordinaten** lassen sich über „Koordinaten suchen" ermitteln, wenn die Wehr
|
||||
einen eigenen Nominatim betreibt (Kapitel 24). Ohne den bleibt das Feld leer —
|
||||
das ist in Ordnung, die Karte kommt in Phase 6.
|
||||
|
||||
---
|
||||
|
||||
## 19. Der Einsatz von innen
|
||||
|
||||

|
||||
|
||||
### Zeitstempel
|
||||
|
||||
Sechs Stempel beschreiben einen Einsatz vollständig:
|
||||
|
||||
| Stempel | wann |
|
||||
|---|---|
|
||||
| alarmiert | die Leitstelle hat alarmiert |
|
||||
| ausgerückt | das erste Fahrzeug verlässt das Gerätehaus |
|
||||
| eingetroffen | das erste Fahrzeug ist an der Einsatzstelle |
|
||||
| Einsatzende | die Arbeit an der Einsatzstelle ist beendet |
|
||||
| eingerückt | zurück im Gerätehaus |
|
||||
| einsatzbereit | Fahrzeuge und Geräte sind wieder hergerichtet |
|
||||
|
||||
Jeder Stempel ist ein Knopf und setzt die aktuelle Uhrzeit. Ein Klick auf
|
||||
„zurücknehmen" macht ihn wieder leer, falls er zu früh gedrückt wurde.
|
||||
|
||||
Daraus errechnet FLORIAN vier Zahlen:
|
||||
|
||||
- **Ausrückzeit** — Alarm bis Ausrücken. Sagt etwas über die Wehr aus.
|
||||
- **Anfahrt** — Ausrücken bis Eintreffen. Sagt etwas über die Lage aus.
|
||||
- **Hilfsfrist** — Alarm bis Eintreffen. Die Zahl, nach der die Gemeinde fragt.
|
||||
- **Einsatzdauer** — Alarm bis Einrücken.
|
||||
|
||||
Stimmt die Reihenfolge nicht, erscheint ein Hinweis. **Gespeichert wird
|
||||
trotzdem**: Zeiten werden oft Tage später aus dem Gedächtnis nachgetragen, und
|
||||
ein Einsatz mit unsicheren Zeiten ist besser als einer, den niemand erfasst.
|
||||
|
||||
### Mannschaft
|
||||
|
||||
„Mannschaft erfassen" zeigt einen Vorschlag, sortiert danach, wer im letzten
|
||||
Jahr am häufigsten dabei war. Daneben steht, ob die einsatzrelevanten
|
||||
Qualifikationen noch gelten — eine abgelaufene G26.3 fällt so auf, **bevor**
|
||||
jemand unter Atemschutz geht.
|
||||
|
||||
Ein Klick übernimmt die Person, danach lassen sich Funktion und Atemschutz in
|
||||
der Tabelle einstellen.
|
||||
|
||||
Rechts steht laufend die **Stärke nach FwDV 3**:
|
||||
|
||||
```
|
||||
1/3/5/9 entspricht einer Gruppe
|
||||
│ │ │ └── gesamt
|
||||
│ │ └──── Mannschaft
|
||||
│ └────── Unterführer (Truppführer)
|
||||
└──────── Führer (Gruppen-, Zug-, Staffelführer, Einsatzleiter)
|
||||
```
|
||||
|
||||
> **Regional unterschiedlich.** Hier zählt der Maschinist zur Mannschaft. Manche
|
||||
> Wehren rechnen ihn zu den Unterführern, andere schreiben dreistellig ohne
|
||||
> Unterführer. Die Zuordnung steht an einer Stelle im Code und lässt sich
|
||||
> anpassen.
|
||||
|
||||
### Verlauf
|
||||
|
||||
Lagemeldungen halten fest, was währenddessen passiert ist — mit Foto und
|
||||
wahlweise als **wichtig** gekennzeichnet (Menschenrettung, Nachforderung,
|
||||
Lageänderung). Meldungen bleiben auch nach der Freigabe möglich.
|
||||
|
||||
---
|
||||
|
||||
## 20. Bericht und Freigabe
|
||||
|
||||
Der Bericht ist der Text des Einsatzleiters: Lage bei Eintreffen, was getan
|
||||
wurde, wie es endete. Er lässt sich jederzeit speichern und weiter ergänzen.
|
||||
|
||||
**Freigeben** schließt den Einsatz ab. Danach:
|
||||
|
||||
- ist der Bericht **unveränderbar** — er geht an die Gemeinde und im
|
||||
Schadensfall an die Versicherung,
|
||||
- entsteht im Hintergrund das PDF (Knopf „Bericht als PDF"),
|
||||
- bleiben nur die Lagemeldungen weiter möglich.
|
||||
|
||||
Vor der Freigabe prüft FLORIAN zwei Dinge: dass eine Alarmzeit gesetzt ist und
|
||||
dass mindestens eine Einsatzkraft erfasst wurde. Ein Bericht ohne Mannschaft
|
||||
ist kein Nachweis.
|
||||
|
||||
---
|
||||
|
||||
## 21. Einsatzportal für Fremdwehren
|
||||
|
||||

|
||||
|
||||
Bei einer größeren Sache sind Nachbarwehren, THW oder Rettungsdienst mit vor
|
||||
Ort. Die brauchen kein Konto in FLORIAN — sie bekommen einen **Link**.
|
||||
|
||||
So geht es:
|
||||
|
||||
1. Auf der Einsatzseite unter „Portal für Fremdwehren" eintragen, für wen der
|
||||
Link ist („FF Nachbarhausen").
|
||||
2. **Erzeugen** klicken. Der Link erscheint **einmal** — danach steht in der
|
||||
Datenbank nur noch sein Hash.
|
||||
3. Link kopieren und weitergeben, oder als QR-Code zeigen.
|
||||
|
||||
Was die Fremdwehr sieht: Stichwort, Ort, die Zeitstempel und den Verlauf. Was
|
||||
sie **nicht** sieht: Namen von Einsatzkräften, den Bericht, irgendetwas
|
||||
außerhalb dieses Einsatzes.
|
||||
|
||||
Was sie tun kann: eine Lagemeldung mit Foto absetzen.
|
||||
|
||||
Der Link gilt 24 Stunden, lässt sich jederzeit **widerrufen**, und jeder Aufruf
|
||||
wird mitgezählt — ein Link, der nach dem Einsatz noch benutzt wird, fällt auf.
|
||||
|
||||
---
|
||||
|
||||
## 22. Statistik
|
||||
|
||||

|
||||
|
||||
Zwei Fragen, eine Seite.
|
||||
|
||||
**Was die Gemeinde fragt:** wie viele Einsätze welcher Art, und wie schnell wart
|
||||
ihr da? Dafür stehen oben die Zahlen nach der Landesstatistik und die
|
||||
**Hilfsfrist als 80-Prozent-Wert**.
|
||||
|
||||
> Warum nicht der Durchschnitt? Weil ein einzelner Einsatz auf der Autobahn ihn
|
||||
> nach oben zieht, während neunzig Prozent der Fälle im Ort liegen. In Bayern
|
||||
> gilt als Ziel: in 80 Prozent der Fälle binnen zehn Minuten. Genau diese Zahl
|
||||
> steht hier.
|
||||
|
||||
**Was die Wehr fragt:** wer trägt die Last? Dafür steht unten die Beteiligung je
|
||||
Person — Einsätze, davon unter Atemschutz, und Übungen.
|
||||
|
||||
**Jahresexport als PDF** erzeugt das Blatt für die Gemeinde: Überblick,
|
||||
Kategorien und alle Einsätze des Jahres in einer Tabelle. Es wird nicht
|
||||
gespeichert, sondern jedes Mal neu gerechnet — es ist eine Auswertung, keine
|
||||
Urkunde.
|
||||
|
||||
---
|
||||
|
||||
## 23. Übungen
|
||||
|
||||

|
||||
|
||||
Eine Übung besteht aus Thema, Art, Datum und den **Lernzielen** — was danach
|
||||
sitzen soll.
|
||||
|
||||

|
||||
|
||||
Die Anwesenheit wird als Liste abgehakt: alle aktiven Mitglieder auf einmal,
|
||||
nicht einzeln gesucht. Bei einer Übung ist die halbe Wehr da.
|
||||
|
||||
Die Teilnahme fließt in die Beteiligungsstatistik ein — das ist die Zahl, nach
|
||||
der in der Jahreshauptversammlung gefragt wird und die bei Beförderungen zählt.
|
||||
|
||||
---
|
||||
|
||||
## 24. Adressen zu Koordinaten (Nominatim)
|
||||
|
||||
FLORIAN löst Einsatzadressen nur auf, wenn die Wehr einen **eigenen** Nominatim
|
||||
betreibt:
|
||||
|
||||
```bash
|
||||
# .env
|
||||
GEOCODING_ENABLED=true
|
||||
NOMINATIM_URL=http://nominatim:8080
|
||||
GEOCODING_LAENDER=de,at,ch
|
||||
```
|
||||
|
||||
> **Kein öffentlicher Dienst.** Einsatzadressen sagen, wo es gebrannt hat und
|
||||
> wer betroffen war. Solche Anfragen gehören nicht an einen fremden Server —
|
||||
> und die Nutzungsbedingungen des öffentlichen Nominatim erlauben es ohnehin
|
||||
> nicht.
|
||||
|
||||
Ohne Konfiguration bleibt die Suche leer. Koordinaten lassen sich dann von Hand
|
||||
eintragen oder weglassen.
|
||||
|
||||
## 25. Rollen und was sie dürfen
|
||||
|
||||
Neun Rollen, jede mit einem festen Satz Rechte. Die Zuordnung steht zentral in
|
||||
`src/lib/authz.ts` und wird beim Seed in die Datenbank gespiegelt — eine Wehr
|
||||
@@ -614,7 +807,7 @@ Das Terminal selbst ist nur die Tür.
|
||||
|
||||
---
|
||||
|
||||
## 19. Anmeldung über authentik einrichten
|
||||
## 26. Anmeldung über authentik einrichten
|
||||
|
||||
authentik läuft **getrennt** von FLORIAN und ist nicht Teil dieses Stacks.
|
||||
|
||||
@@ -667,7 +860,7 @@ ganze Wehr aus.
|
||||
|
||||
---
|
||||
|
||||
## 20. Terminal-Anmeldung im Gerätehaus
|
||||
## 27. Terminal-Anmeldung im Gerätehaus
|
||||
|
||||
Die Oberfläche dazu kommt in Phase 4; der Anmeldeweg steht bereits.
|
||||
|
||||
@@ -689,7 +882,7 @@ Huber), PIN `471203`.
|
||||
|
||||
---
|
||||
|
||||
## 21. Was protokolliert wird
|
||||
## 28. Was protokolliert wird
|
||||
|
||||
Jede schreibende Änderung erzeugt einen Eintrag mit Zeitpunkt, Person,
|
||||
betroffenem Datensatz und den geänderten Feldern im Vorher-Nachher-Vergleich.
|
||||
@@ -714,7 +907,7 @@ jeweiligen Detailseite sichtbar.
|
||||
|
||||
---
|
||||
|
||||
## 22. Wenn etwas nicht geht
|
||||
## 29. Wenn etwas nicht geht
|
||||
|
||||
| Beobachtung | Wahrscheinliche Ursache | Was hilft |
|
||||
|---|---|---|
|
||||
|
||||
Reference in New Issue
Block a user