diff --git a/routers/admin_geraete.py b/routers/admin_geraete.py index 8dfe7a8..7030152 100644 --- a/routers/admin_geraete.py +++ b/routers/admin_geraete.py @@ -51,6 +51,31 @@ def oe_verschieben(device_id: str, oe_id: str = Form(...), user: dict = Depends( return RedirectResponse("/admin/geraete", status_code=303) +@router.get("/{device_id}/log") +def log_ansicht(request: Request, device_id: str, user: dict = Depends(require_admin)): + device = find_device(device_id) + + if device is None: + raise HTTPException(status_code=404, detail="Gerät wurde nicht gefunden.") + + # Merkmal-Anwendungen (Auftragskatalog) UND Installations-Meilensteine/ + # Fehlschlaege des Boot-Mediums selbst (siehe device_installation_events, + # Migration 0025 in provisioning-server) zusammengefuehrt, neueste + # zuerst - bewusst nur hier im Admin-Bereich (siehe + # templates/admin/geraete_log.html), nicht auf der Kunden-Seite. + merkmal_result = anode_request("GET", f"/api/v1/devices/{device_id}/events") + merkmal_events = merkmal_result.get("events", []) if merkmal_result.get("success") else [] + + installation_result = anode_request("GET", f"/api/v1/devices/{device_id}/installation-events") + installation_events = installation_result.get("events", []) if installation_result.get("success") else [] + + events = sorted(merkmal_events + installation_events, key=lambda e: e["occurred_at"], reverse=True) + + return templates.TemplateResponse( + request, "admin/geraete_log.html", {"user": user, "device": device, "events": events} + ) + + @router.get("/{device_id}") def auftragskatalog_ansicht(request: Request, device_id: str, user: dict = Depends(require_admin)): device = find_device(device_id) diff --git a/templates/admin/geraete_liste.html b/templates/admin/geraete_liste.html index eb068e9..3408ad2 100644 --- a/templates/admin/geraete_liste.html +++ b/templates/admin/geraete_liste.html @@ -18,7 +18,10 @@ {{ device.device_fingerprint }} {{ device.oe_name or "—" }} {{ device.agent_last_checkin or "noch nie" }}{% if device.debug_mode_until %}
🐞 Debug-Modus aktiv{% endif %} - Auftragskatalog → + + Auftragskatalog → + Log → +