From b7b0965722f29ca8e0706bb48e57ab7c9207042c Mon Sep 17 00:00:00 2001 From: Admin MPCZ Date: Sat, 11 Apr 2026 21:07:44 +0200 Subject: [PATCH] Fix: qualys/agents - convert rows to dicts pour compatibilite Jinja2 map/attribute --- app/routers/qualys.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/routers/qualys.py b/app/routers/qualys.py index 1e9a5ab..8f60933 100644 --- a/app/routers/qualys.py +++ b/app/routers/qualys.py @@ -484,7 +484,7 @@ async def qualys_agents_page(request: Request, db=Depends(get_db)): summary = {"statuses": [], "versions": [], "total_assets": 0, "active": 0, "inactive": 0} # Serveurs en prod sans agent Qualys - no_agent = db.execute(text(""" + no_agent_rows = db.execute(text(""" SELECT s.hostname, s.os_family, s.etat, d.name as domain, e.name as env, z.name as zone FROM servers s LEFT JOIN domain_environments de ON s.domain_env_id = de.id @@ -494,15 +494,19 @@ async def qualys_agents_page(request: Request, db=Depends(get_db)): WHERE NOT EXISTS (SELECT 1 FROM qualys_assets qa WHERE LOWER(qa.hostname) = LOWER(s.hostname)) ORDER BY s.hostname """)).fetchall() + no_agent = [{"hostname": r.hostname, "os_family": r.os_family, "etat": r.etat, + "domain": r.domain or "", "env": r.env or "", "zone": r.zone or ""} for r in no_agent_rows] # Agents inactifs - inactive = db.execute(text(""" + inactive_rows = db.execute(text(""" SELECT qa.hostname, qa.os, qa.agent_version, qa.last_checkin, s.etat FROM qualys_assets qa LEFT JOIN servers s ON qa.server_id = s.id WHERE qa.agent_status ILIKE '%inactive%' ORDER BY qa.hostname """)).fetchall() + inactive = [{"hostname": r.hostname, "os": r.os, "agent_version": r.agent_version, + "last_checkin": r.last_checkin, "etat": r.etat or ""} for r in inactive_rows] ctx = base_context(request, db, user) ctx.update({