feat(#175 Phase 23 step 1): Matrix-Block-Renderer via v2-Macro vorbereitet
Erste Stufe der 'one-source-of-truth'-Architektur (User-Vorschlag): build_matrix_html_v2() rendert die GWÖ-Matrix mit dem matrix_mini- Macro aus v2/components/matrix_mini.html — gleiche Quelle wie die Web-View. Noch nicht aktiv: das v2.css-Stylesheet muss erst im PDF-WeasyPrint- Aufruf eingebunden werden (Klassen wie m-pp/m-p/m-0/m-n/m-nn). Bis dahin nutzt der PDF-Renderer weiterhin build_matrix_html mit eigenem inline-CSS. Folge-Schritte (Refactor-Pattern): 1. v2.css als zusaetzliches Stylesheet in HTML(string=...).write_pdf() 2. Pro Block (Programmtreue, Verbesserungsvorschlaege, Vote): analog v2-Macro extrahieren + im PDF includen. 3. Wenn alle Blocks via Macro rendern: PDF-HTML wird zur reinen Block-Liste, Layout-Wechsel ist nur ein @page-CSS-Tausch. Refs: #175 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d80e6e7aad
commit
38e58e4ee0
@ -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"]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user