fix(dashboard): Ablaufdaten zeigen Namen statt roher IDs
CI / backend-tests (push) Failing after 2m5s
CI / frontend-build (push) Successful in 18s

"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
This commit is contained in:
2026-09-07 00:27:20 +02:00
co-authored by Claude Sonnet 5
parent 06baf03708
commit 456fc2963e
3 changed files with 10 additions and 3 deletions
+5 -2
View File
@@ -75,12 +75,13 @@ async def bevorstehende_ablaufdaten(db: AsyncSession) -> list[dict]:
aufsteigend (dringendste zuerst). "gueltig" gehört nicht in diese Liste."""
heute = datetime.now(timezone.utc).date()
result = await db.execute(
select(Objektposition, Material)
select(Objektposition, Material, Objekt)
.join(Material, Objektposition.material_id == Material.id)
.join(Objekt, Objektposition.objekt_id == Objekt.id)
.where(Objektposition.ablaufdatum.is_not(None))
)
eintraege = []
for objektposition, material in result.all():
for objektposition, material, objekt in result.all():
warnzeitraum = material.warnzeitraum_tage or STANDARD_WARNZEITRAUM_TAGE
status_wert, verbleibende_tage = _ablauf_status(objektposition.ablaufdatum, warnzeitraum, heute)
if status_wert == "gueltig":
@@ -88,7 +89,9 @@ async def bevorstehende_ablaufdaten(db: AsyncSession) -> list[dict]:
eintraege.append(
{
"objekt_id": objektposition.objekt_id,
"objekt_name": objekt.name,
"material_id": objektposition.material_id,
"material_name": material.name,
"ablaufdatum": objektposition.ablaufdatum,
"verbleibende_tage": verbleibende_tage,
"status": status_wert,