fix(dashboard): nie kontrollierte Objekte gelten nicht mehr als einsatzbereit
CI / backend-tests (push) Failing after 1m54s
CI / frontend-build (push) Successful in 16s

Nutzer-Fund (Readiness-Backlog-Review): einsatzbereitschaft() zählte ein
Objekt ohne jede Kontrolle bisher als "einsatzbereit", weil keine Kriterien
verletzt waren - fachlich falsch, "nie geprüft" ist nicht dasselbe wie
"geprüft und in Ordnung".

Neuer vierter Zustand "unbekannt": Objekte ohne abgeschlossene Kontrolle UND
ohne sonstige Blocker fallen jetzt hierunter statt unter "einsatzbereit".
Objekte mit anderen Gründen (Fehlbestand/Mangel/Prüfung/...) bleiben davon
unberührt, die zählten schon vorher korrekt.

Tests angepasst: zwei bestehende Tests nutzten ungeprüfte Objekte und
erwarteten fälschlich "einsatzbereit" - jetzt entweder explizit kontrolliert
(Ist=Soll) oder auf "unbekannt" korrigiert, plus neuer Test für den Kernfall.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
This commit is contained in:
2026-09-05 15:47:39 +02:00
co-authored by Claude Sonnet 5
parent f158cb87bb
commit fab3a06073
6 changed files with 92 additions and 6 deletions
+15 -1
View File
@@ -100,8 +100,22 @@ async def test_kritischer_offener_mangel_macht_objekt_nicht_einsatzbereit(
async def test_niedrige_prioritaet_blockiert_einsatzbereitschaft_nicht(
client, objekt_mit_position, mitarbeiter_user, materialverantwortlicher_user
):
objekt, _material = objekt_mit_position
objekt, material = objekt_mit_position
mitarbeiter_token = await login(client, "mitarbeiter1")
# kontrolliert (Ist=Soll), damit dieser Test unabhängig vom "nie kontrolliert"-Fall
# (siehe test_dashboard.py: test_nie_kontrolliertes_objekt_ist_unbekannt) nur die
# Priorität isoliert prüft.
start = await client.post(
f"/api/v1/objekte/{objekt.id}/kontrollen", json={"uebernehmen": False}, headers=auth_header(mitarbeiter_token)
)
kontrolle_id = start.json()["id"]
await client.put(
f"/api/v1/kontrollen/{kontrolle_id}/positionen/{material.id}",
json={"istmenge": "10"},
headers=auth_header(mitarbeiter_token),
)
await client.post(f"/api/v1/kontrollen/{kontrolle_id}/abschliessen", headers=auth_header(mitarbeiter_token))
await client.post(
"/api/v1/maengel",
json={"objekt_id": objekt.id, "beschreibung": "Kratzer im Lack", "prioritaet": "niedrig"},