diff --git a/app/report.py b/app/report.py index 59b4839..72a3587 100644 --- a/app/report.py +++ b/app/report.py @@ -90,8 +90,30 @@ def format_redline_html(text: str) -> str: return text +def build_matrix_html_v2(assessment: Assessment) -> str: + """Render Matrix mit dem v2-Macro (matrix_mini) — gleiche Quelle wie + die Web-View. Erste Stufe von #175 Phase 23: PDF nutzt v2-Block- + Macros für Konsistenz-by-Design.""" + from jinja2 import Environment, FileSystemLoader + template_dir = Path(__file__).resolve().parent / "templates" + env = Environment(loader=FileSystemLoader(str(template_dir)), + autoescape=True) + macro_template = env.get_template("v2/components/matrix_mini.html") + matrix_dict = {} + for e in assessment.gwoe_matrix: + matrix_dict[e.field] = {"rating": e.rating, "symbol": ""} + # Macro über `module` aufrufen + module = macro_template.module + return str(module.matrix_mini(matrix_dict)) + + def build_matrix_html(assessment: Assessment) -> str: - """Build HTML matrix table.""" + """Legacy-Renderer: 5x5-Tabelle für PDF (Stand vor Phase 23). + + Hauptpfad rendert weiterhin diese Funktion — der v2-Macro-Pfad + (build_matrix_html_v2) ist als Folge-Schritt verfügbar, sobald + das v2.css-Stylesheet im PDF eingebunden ist. + """ rating_map = {e.field: e for e in assessment.gwoe_matrix} rows = ["A", "B", "C", "D", "E"]