Files
patrickandClaude Sonnet 5 456fc2963e
CI / backend-tests (push) Failing after 2m5s
CI / frontend-build (push) Successful in 18s
fix(dashboard): Ablaufdaten zeigen Namen statt roher IDs
"Bevorstehende Ablaufdaten" zeigte "Objekt #67 – Material #222" statt
lesbarer Bezeichnungen. bevorstehende_ablaufdaten() liefert jetzt
objekt_name/material_name mit, Dashboard nutzt sie.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
2026-09-07 00:27:20 +02:00

73 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
objekt_name: str
material_id: int
material_name: str
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