feat(fahrzeug): Fahrzeug-Spezialfelder + 5-stufiger Status (Roadmap Phase 3)
Neue Tabelle fahrzeugdetails (1:1 zu Objekt, additiv/optional): Kennzeichen, Funkrufname, Baujahr, Kilometerstand, Betriebsstunden, nächste HU/UVV. objekt_status um 'in_wartung' erweitert (Nutzer-Vorgabe: einsatzbereit/ eingeschränkt/nicht einsatzbereit/in Wartung/außer Dienst - die ersten drei bleiben weiterhin rein rechnerisch über dashboard.einsatzbereitschaft(), in_wartung/ausser_dienst sind die beiden manuell gesetzten Zustände). dashboard.einsatzbereitschaft(): ausser_dienst-Objekte zählen nicht mehr mit, in_wartung und überfällige HU/UVV sind neue Gründe für "nicht einsatzbereit". dashboard.bevorstehende_prueftermine() (Kachel 2) zeigt jetzt Geräte- UND Fahrzeugprüfungen (HU/UVV) in einer Liste (Nutzer-Vorgabe: ein Konzept für "welche Prüfungen bald fällig sind") - Schema dafür verallgemeinert (typ/bezeichnung/faelligkeitsdatum statt geräte-spezifischer Felder). Frontend: Status-Dropdown + Fahrzeugdetails-Formular in ObjektSection (nur für Objekttypen mit ist_zugfahrzeug=True), Dashboard-Kachel 2 zeigt gemischte Liste. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KC8HYvv6UkCVYheYiTw9DD
This commit is contained in:
@@ -3,8 +3,6 @@ from datetime import date
|
||||
|
||||
from pydantic import BaseModel
|
||||
|
||||
from app.models.geraet_instanz import GeraetStatus
|
||||
|
||||
|
||||
class KennzahlenRead(BaseModel):
|
||||
anzahl_offener_fehlbestaende: int
|
||||
@@ -39,13 +37,18 @@ class EinsatzbereitschaftRead(BaseModel):
|
||||
|
||||
|
||||
class PrueftermineintragRead(BaseModel):
|
||||
geraet_instanz_id: uuid.UUID
|
||||
"""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
|
||||
objektposition_id: uuid.UUID
|
||||
material_id: int
|
||||
material_name: str
|
||||
seriennummer: str
|
||||
geraet_status: GeraetStatus
|
||||
naechste_pruefung: date
|
||||
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
|
||||
|
||||
@@ -32,6 +32,29 @@ class ObjektRead(BaseModel):
|
||||
|
||||
class ObjektUpdate(BaseModel):
|
||||
fahrzeug_id: int | None = None
|
||||
status: ObjektStatus | None = None
|
||||
|
||||
|
||||
class FahrzeugdetailsUpsert(BaseModel):
|
||||
kennzeichen: str | None = None
|
||||
funkrufname: str | None = None
|
||||
baujahr: int | None = None
|
||||
kilometerstand: int | None = None
|
||||
betriebsstunden: Decimal | None = None
|
||||
naechste_hu: date | None = None
|
||||
naechste_uvv: date | None = None
|
||||
|
||||
|
||||
class FahrzeugdetailsRead(BaseModel):
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
objekt_id: int
|
||||
kennzeichen: str | None
|
||||
funkrufname: str | None
|
||||
baujahr: int | None
|
||||
kilometerstand: int | None
|
||||
betriebsstunden: Decimal | None
|
||||
naechste_hu: date | None
|
||||
naechste_uvv: date | None
|
||||
|
||||
|
||||
class ObjektDuplizierenRequest(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user