{html.escape(e.get('anliegen_kurz') or '')}
Transkript
{html.escape(d.get('transkript') or '')}
"""Erzeugt aus der lokalen Ablage eine HTML-Triage-Übersicht.
python3 -m pipe.dashboard [ausgabe.html]
Rein lokal, liest nur die meta.json-Dateien. Notfälle stehen oben.
"""
from __future__ import annotations
import html
import json
import sys
from pathlib import Path
from . import config, kategorien
RANG = {"notfall": 0, "hoch": 1, "normal": 2, "niedrig": 3}
FARBE = {"notfall": "#E9322D", "hoch": "#E0A339", "normal": "#C9A227", "niedrig": "#31CC7C"}
KAT_LABEL = kategorien.KATEGORIE_LABEL
def _anrufe() -> list[dict]:
daten = []
if not config.ABLAGE_LOKAL.is_dir():
return daten
for meta in config.ABLAGE_LOKAL.glob("*/*/meta.json"):
try:
daten.append(json.loads(meta.read_text(encoding="utf-8")))
except Exception:
continue
daten.sort(key=lambda d: (RANG.get(d["auswertung"]["dringlichkeit"], 9), d["empfangen"]))
return daten
def _karte(d: dict) -> str:
e = d["auswertung"]
farbe = FARBE.get(e["dringlichkeit"], "#888")
wer = html.escape(e.get("anrufer_name") or "—")
nummer = html.escape(d.get("anrufer_nummer") or e.get("rueckrufnummer") or "—")
stich = " ".join(f"{html.escape(s)}" for s in (e.get("stichworte") or []))
return f"""
{html.escape(e.get('anliegen_kurz') or '')} {html.escape(d.get('transkript') or '')}Transkript
{len(anrufe)} Anrufe · {zusammenfassung or '—'} · lokal erzeugt aus der Ablage
{karten}