feat(dekon): der Dekon-Platz ist nicht dokumentierbar — Dekon-P und Platzführung fehlen
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 10/100
Hướng nghiên cứu
This is a cross-cutting module spanning the listed Domain, persistence, sync, UI, master-data, PDF, and test files; first read the CO measurement module and the referenced related issues, especially #381, before proposing work. The issue identifies migration V21→V22, sync round-trip, ViewModel, acceptance render tests, and the screenshot requirement in AGENTS.md. Done requires resolving the scope and sequencing questions, then implementing and testing the agreed Dekon-P and site-management work; this is explicitly beyond a first-timer-sized contribution.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Rückmeldung aus der Praxis
Apropos... Doku für den Dekon Platz wäre auch noch etwas was wir integrieren
könnten. Aber dann wieder als extra Android App mit Datentransfer
Heute
Vom ABC-Einsatz kennt Lagebuch nichts.
grep -riE "dekon|kontamin|gefahrgut|gsg|strahlenschutz|messtrupp" \
src/ docs/*.md README.md ROADMAP.md CHANGELOG.md
→ kein Treffer. Der einzige Treffer im ganzen Repo ist ein Link-Name
„Gefahrgut" in einer Testfixture
(tests/LageBuch.AppLogic.Tests/LinksViewModelTests.cs:108).
Vier Dinge kommen nahe und reichen jeweils nicht:
- Atemschutz kennt den CSA-Trupp längst als eigenen Typ — 3 Personen,
kürzere Einsatzzeit:
Wer zu dekontaminieren ist, steht also schon namentlich in der Einsatzdatei:// src/LageBuch.Domain/Atemschutz/AtemschutzTrupp.cs public const string ChemicalTruppDesignation = "CSA-Trupp"; public const int DefaultChemicalMaxDurationMinutes = 20;
TruppMember(src/LageBuch.Domain/Atemschutz/TruppMember.cs) ist der
einzige Ort, an dem einzelne Personen modelliert sind. Was nach dem
Rückzug mit dem Trupp passiert, endet dort. - Kräfte sind Zahlen, keine Personen —
ForceUnitträgt
PersonnelCount,ScbaCount,OfficerCount. Ein Dekon-Platz schleust aber
Personen durch, keine Stärken. - Checklisten gibt es, aber genau eine je Richtung (Aufbau/Abbau) aus den
Stammdaten. Der Aufbau eines Dekon-Platzes ist eine eigene Liste, die nur in
der ABC-Lage gebraucht wird. - CO-Messung (
src/LageBuch.Domain/CoMeasurement/,
CoMessprotokollViewModel,CoMessprotokollSection) ist das einzige
vergleichbare Protokollmodul — und damit die Bauvorlage.
Die „extra Android App" gibt es schon — den Datentransfer auch
Die Android-App ist kein zweites Programm, sondern der Android-Head desselben
Codes (src/LageBuch.App.Android/, net10.0-android), und sie ist
ausdrücklich ein Begleitgerät:
Android kann beitreten, aber selbst keinen Einsatz freigeben. Die App ist
ein Begleitgerät.
—docs/datenschutz-und-sicherheit.md:211
Der „Datentransfer" ist die vorhandene Synchronisation: TLS mit
Trust-on-First-Use, vierstellige PIN, SignalR über Port 5859
(src/LageBuch.Sync/SyncProtocol.cs, src/LageBuch.Sync.Hosting/IncidentHost.cs).
Die Ansichten liegen ohnehin gemeinsam in LageBuch.App.Shared und laufen auf
beiden Köpfen.
Ein Tablet am Dekon-Platz braucht also kein neues Repo und keine zweite
App — es braucht einen Reiter DEKON in der vorhandenen, und der Weg der Daten
in den ELW ist bereits gebaut. Ein separates Programm hätte dagegen kein
Übergabeformat: .fwincident ist eine nackte SQLite-Datei mit einem
*.files/-Verzeichnis daneben, es gibt weder Einsatz-Import/-Export noch QR,
Bluetooth oder NFC.
Ein Haken bleibt: #381 — die veröffentlichte APK deklariert keine
INTERNET-Berechtigung, Beitreten kann damit gar nicht funktionieren. Solange
das offen ist, ist jedes Begleitgerät-Feature Theorie.
Vorschlag
Fachlich zwei Hälften: Dekon-P (Einsatzkräfte nach FwDV 500) und
Platzführung/Ressourcen. Dekon-V und Geräte-/Fahrzeugdekon bleiben
ausdrücklich draußen, siehe „Zu klären".
- Domain —
src/LageBuch.Domain/Dekon/nach dem Muster von
CoMeasurement/: eine Personenzeile (Name, Herkunft/Trupp, Dekon-Stufe,
angemeldet um, fertig um, Status, Bemerkung) und ein Platz-Kopf (Standort,
betriebsbereit ab, Stufe, verantwortliche Funktion, Personal am Platz).
Status als Enum, dessen Werte nur angehängt werden dürfen — Enums werden
ordinal persistiert (EtbDirection). Incident— neue Sammlung plus Mutationsmethoden mitEnsureOpen()und
automatischem ETB-Systemeintrag („Dekon-Platz betriebsbereit", „Trupp 2
dekontaminiert"). Achtung:Incident.Rehydrateist positional, die Signatur
und alle drei Aufrufer müssen mit.- Persistenz —
ApplyV22insrc/LageBuch.Persistence/Sqlite/Migrations.cs
(CurrentVersion21 → 22), Tabellendekon_platz/dekon_persons, in
IncidentRepository.Savelöschen-und-neuschreiben wie jede andere. - Sync — neue
[JsonDerivedType]-Kommandos inSyncCommand.cs, dazu
IIncidentSession,CommandApplier,LocalIncidentSession,
RemoteIncidentSession,IncidentSnapshotundSnapshotMapper. Das ist der
„Datentransfer" aus der Rückmeldung — er entsteht hier, nicht in einer
zweiten App. - UI —
DekonViewModel+DekonView.axaml, ein
<TabItem Header="DEKON">inIncidentWorkspaceView.axaml. Die Anmeldung
einer Person sollte die Atemschutztrupps als Quelle anbieten: die Namen
stehen dort bereits, abtippen am Dekon-Platz ist der falsche Ort. - Stammdaten — Dekon-Stufen und Vorgabezeiten als Felder in
IncidentSettings(src/LageBuch.Persistence/MasterData/MasterDataSet.cs),
mitsamtdocs/master-data.example.jsonund
docs/samples/demo-stammdaten.json. Eine eigene Dekon-Aufbau-Checkliste
wäre die zweite Stammdaten-Erweiterung. - Bericht — Flag in
IncidentPdfSections, Abschnitt unter
src/LageBuch.Documents/Sections/, Haken inPdfExportOptionsViewModel. - Tests — Domain, Migration V21→V22, Sync-Roundtrip, ViewModel und ein
Render-Test intests/LageBuch.Acceptance.Tests; für den PR gilt die
Screenshot-Pflicht ausAGENTS.md.
Größenordnung, ehrlich: das CO-Messprotokoll (955862d) waren rund 2000 Zeilen
über 38 Dateien. Das hier ist kein Feierabend-Issue.
Zu klären
- Reihenfolge. #381 muss vorher zu, sonst kann das Begleitgerät gar nicht
beitreten. Und die Roadmap sagt für v0.6 ausdrücklich „nichts Neues" und für
v0.7 Sicherheit — ein neues Modul kollidiert damit. Der ehrliche Platz ist
„Beyond 1.0" neben der Wasserförderung, oder direkt nach #351: vor dem
Formatfreeze darf eine neue Tabelle noch wandern, danach nicht mehr. - Reicht das Netz bis zum Dekon-Platz? Der Dekon-Platz liegt an der Grenze
des Absperrbereichs, der ELW steht woanders. Die Synchronisation braucht
LAN oder Tailscale, und ein beigetretener Client hält keine eigene Autorität
(RemoteIncidentSession) — reißt die Verbindung ab, kann am Dekon-Platz
nichts mehr geschrieben werden. Entweder man nimmt das in Kauf, oder das
Modul braucht Offline-Pufferung. Letzteres wäre ein eigenes, größeres Thema
und nicht Teil dieses Issues. - Dekon-V ist bewusst draußen. Die Dekon von Verletzten und Betroffenen
brächte Gesundheitsdaten (Art. 9 DSGVO) in eine Einsatzdatei, die heute
Einsatzkräfte und Bewohnernamen kennt. Das ist eine eigene Entscheidung mit
eigenem Datenschutzkapitel, kein Nachziehen. - Datenschutz auch bei Dekon-P. „Diese Person wurde dekontaminiert" ist
eine neue Kategorie personenbezogener Daten und muss in
docs/datenschutz-und-sicherheit.mdnachgetragen werden, samt Löschkonzept —
dieselbe Auflage wie bei #427. - Elf Reiter.
IncidentWorkspaceView.axamlhat heute zehn; auf einem
Android-Tablet ist das bereits eng. Ein Reiter, der nur in der ABC-Lage
gebraucht wird, sollte vielleicht nicht immer sichtbar sein — dieselbe Frage
stellt #405. - Welche Norm, und wo stehen die Zahlen? Dekon-Stufen und der Begriff
Dekon-P kommen aus der FwDV 500. Die Werte gehören in die Stammdaten, nicht
als Regel in den Code — genau die Lehre aus #398 und #418.
Verwandt: #381, #351, #399, #405, #418, #427.
- Ngôn ngữ chính
- C#
- Star
- 1
- Fork
- 3
- Merge trung bình
- 4 giờ 34 phút
- Pull request đã merge (30 ngày)
- 182
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của CodeForFire/lagebuch
-
bug ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
CodeForFire/lagebuch#714 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug ux
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
CodeForFire/lagebuch#713 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
CodeForFire/lagebuch#405 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
CodeForFire/lagebuch#349 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
documentation good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
CodeForFire/lagebuch#348 ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của CodeForFire/lagebuch
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
KnifeLemon/Filee#363 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[CI] .trgen-ignore required for several grammars.Có thể đã có người làm @kaby76 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
antlr/grammars-v4#5073 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
/api/oauth/introspect emits clientId and tokenType instead of RFC 7662's client_id and token_typeĐang mởbug P2
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
nightscout/nocturne#2317 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG]: Position intent set on a simple order is dropped when it becomes a bracket, OCO or OTO orderCó thể đã có người làm @RaphaelFakhri đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
alpacahq/alpaca-trade-api-csharp#903 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 64/100
joinrpg/joinrpg-net#5752 ·
Maintainer thường phản hồi trong vòng 1 ngày