From 9f87bc5a2c25220b5f065a2ab6944e88adddeac7 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Fri, 15 May 2026 10:15:34 +0200 Subject: [PATCH] fix: include website/company name in compliance-check email subject --- .../api/agent_compliance_check_routes.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/backend-compliance/compliance/api/agent_compliance_check_routes.py b/backend-compliance/compliance/api/agent_compliance_check_routes.py index 3976b46d..8efdf3d6 100644 --- a/backend-compliance/compliance/api/agent_compliance_check_routes.py +++ b/backend-compliance/compliance/api/agent_compliance_check_routes.py @@ -325,11 +325,16 @@ async def _run_compliance_check(check_id: str, req: ComplianceCheckRequest): profile_html = _build_profile_html(profile) full_html = summary_html + profile_html + report_html - # Step 6: Send email + # Step 6: Send email — include website/company name in subject doc_count = len([r for r in results if not r.error]) + site_name = ( + extracted_profile.get("company_profile", {}).get("companyName") + or _extract_domain(doc_entries) + or "Unbekannt" + ) email_result = send_email( recipient=req.recipient, - subject=f"[COMPLIANCE-CHECK] {doc_count} Dokumente geprueft", + subject=f"[COMPLIANCE-CHECK] {site_name} — {doc_count} Dokumente geprueft", body_html=full_html, ) @@ -457,6 +462,17 @@ async def _check_single( ) +def _extract_domain(doc_entries: list[dict]) -> str | None: + """Extract domain name from first URL for email subject.""" + for entry in doc_entries: + url = entry.get("url", "") + if url and "://" in url: + from urllib.parse import urlparse + host = urlparse(url).netloc + return host.replace("www.", "") if host else None + return None + + def _get_skip_types(profile) -> dict[str, str]: """Doc_types to skip entirely. Currently empty — we check everything and flag irrelevant items as INFO instead of skipping."""