fix(dashboard): "nie kontrolliert" ging bei zusätzlichen Gründen verloren
CI / backend-tests (push) Failing after 2m3s
CI / frontend-build (push) Successful in 19s

_kategorie_und_gruende() zählte "noch_nie_kontrolliert" bisher nur,
wenn es der EINZIGE Grund war - ein Objekt mit z.B. offenem
Fehlbestand UND nie kontrolliert verlor den Hinweis komplett, landete
nur unter "nicht einsatzbereit" ohne diesen Grund zu nennen. Jetzt
immer als Zusatzgrund angehängt. Neues Feld nie_kontrolliert_gesamt
liefert die tatsächliche Gesamtzahl über alle Kategorien hinweg,
Dashboard nutzt sie statt der (bewusst engeren) "unbekannt"-Kategorie.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-06 22:00:01 +02:00
co-authored by Claude Sonnet 5
parent 9a3eb7d810
commit 65203a039c
4 changed files with 40 additions and 7 deletions
+10 -3
View File
@@ -186,6 +186,7 @@ async def test_nie_kontrolliertes_objekt_ist_unbekannt(
assert body["unbekannt"] == 1
assert body["nicht_einsatzbereit"] == 0
assert body["details"][0]["gruende"] == ["noch_nie_kontrolliert"]
assert body["nie_kontrolliert_gesamt"] == 1
@pytest.mark.asyncio
@@ -203,7 +204,11 @@ async def test_offener_fehlbestand_macht_objekt_nicht_einsatzbereit(
body = response.json()
assert body["einsatzbereit"] == 0
assert body["nicht_einsatzbereit"] == 1
assert body["details"][0]["gruende"] == ["fehlbestand_offen"]
# Bug-Fund 2026-09-06: "nie kontrolliert" darf nicht verloren gehen, nur
# weil das Objekt zusätzlich einen anderen Grund hat (objekt_mit_position
# hat nie eine abgeschlossene Kontrolle).
assert body["details"][0]["gruende"] == ["fehlbestand_offen", "noch_nie_kontrolliert"]
assert body["nie_kontrolliert_gesamt"] == 1
@pytest.mark.asyncio
@@ -230,7 +235,8 @@ async def test_genehmigte_mindermenge_macht_objekt_eingeschraenkt_einsatzbereit(
assert body["einsatzbereit"] == 0
assert body["eingeschraenkt_einsatzbereit"] == 1
assert body["nicht_einsatzbereit"] == 0
assert body["details"][0]["gruende"] == ["mindermenge_genehmigt"]
assert body["details"][0]["gruende"] == ["mindermenge_genehmigt", "noch_nie_kontrolliert"]
assert body["nie_kontrolliert_gesamt"] == 1
@pytest.mark.asyncio
@@ -257,7 +263,8 @@ async def test_ueberfaellige_pruefung_macht_objekt_nicht_einsatzbereit(
response = await client.get("/api/v1/dashboard/einsatzbereitschaft", headers=auth_header(token))
body = response.json()
assert body["nicht_einsatzbereit"] == 1
assert body["details"][0]["gruende"] == ["pruefung_ueberfaellig"]
assert body["details"][0]["gruende"] == ["pruefung_ueberfaellig", "noch_nie_kontrolliert"]
assert body["nie_kontrolliert_gesamt"] == 1
prueftermine = await client.get("/api/v1/dashboard/prueftermine", headers=auth_header(token))
prueftermine_body = prueftermine.json()