Files
MABEA/backend/app/schemas/dashboard.py
T
patrickandClaude Sonnet 5 65203a039c
CI / backend-tests (push) Failing after 2m3s
CI / frontend-build (push) Successful in 19s
fix(dashboard): "nie kontrolliert" ging bei zusätzlichen Gründen verloren
_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
2026-09-06 22:00:01 +02:00

71 lines
1.8 KiB
Python

import uuid
from datetime import date
from pydantic import BaseModel
class KennzahlenRead(BaseModel):
anzahl_offener_fehlbestaende: int
anzahl_genehmigter_mindermengen: int
anzahl_kuerzlich_erledigter_fehlbestaende: int
anzahl_bevorstehender_ablaufdaten: int
anzahl_problematischer_objekte: int
anzahl_objekte_gesamt: int
class AblaufdatumRead(BaseModel):
objekt_id: int
material_id: int
ablaufdatum: date
verbleibende_tage: int
status: str
class ObjektMangelRead(BaseModel):
objekt_id: int
code: str
name: str
gruende: list[str]
class EinsatzbereitschaftRead(BaseModel):
einsatzbereit: int
eingeschraenkt_einsatzbereit: int
unbekannt: int
nicht_einsatzbereit: int
gesamt: int
nie_kontrolliert_gesamt: int
details: list[ObjektMangelRead]
class PrueftermineintragRead(BaseModel):
"""typ='geraet' (Karte 14) oder 'fahrzeug_hu'/'fahrzeug_uvv' (Roadmap Phase
3, Modul Fahrzeuge) - eine Kachel für beide (Nutzer-Vorgabe: "welche
Prüfungen bald fällig sind" ist ein Konzept). Die geraet-spezifischen
Felder sind bei Fahrzeug-Einträgen None."""
typ: str
objekt_id: int
bezeichnung: str
faelligkeitsdatum: date
verbleibende_tage: int
status: str
geraet_instanz_id: uuid.UUID | None = None
objektposition_id: uuid.UUID | None = None
material_id: int | None = None
seriennummer: str | None = None
class QualifikationsablaufRead(BaseModel):
"""Personal-Modul-Kachel (Nutzer-Vorgabe: "wer verliert bald Führerschein/
Lehrgang-Gültigkeit")."""
benutzer_qualifikation_id: uuid.UUID
benutzer_id: int
benutzer_name: str
qualifikationstyp_id: int
qualifikationstyp_name: str
gueltig_bis: date
verbleibende_tage: int
status: str