From 6e78e92ddf18c3678d29e6f48aa10e7a873f2aac Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Sun, 3 May 2026 22:51:24 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20Matrix-Faerbung=20bei=20rating=20=C2=B13?= =?UTF-8?q?=20/=20=C2=B14=20/=20=C2=B15=20inkonsistent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User-Bug-Report: "+ mal blassrot, ++ mal blassgruen oder gruen". Ursache: matrix_mini-Macro hatte rating_class() nur fuer rating ∈ {-2, -1, 0, 1, 2} definiert. Aber die echte Bewertungs-Skala ist −5..+5 (siehe app/models.py:MatrixEntry). Effekt: - rating=3, symbol="+" → m-0 neutral angezeigt (sollte m-p gruen sein) - rating=4, symbol="++" → m-0 neutral (sollte m-pp ECG-Gruen) - rating=-3, symbol="−" → m-0 neutral (sollte m-n rot) - rating=-4, symbol="−−" → m-0 neutral (sollte m-nn dunkelrot) Fix: rating_class abdeckt jetzt die volle Skala −5..+5 analog zu MatrixEntry.to_symbol(): - rating ≥ 4 → m-pp - rating 1..3 → m-p - rating 0 → m-0 - rating -1..-3→ m-n - rating ≤ -4 → m-nn Doku im Macro-Header korrigiert (war "-2 bis 2", jetzt "-5 bis +5"). Co-Authored-By: Claude Opus 4.7 (1M context) --- app/templates/v2/components/matrix_mini.html | 29 ++++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/app/templates/v2/components/matrix_mini.html b/app/templates/v2/components/matrix_mini.html index 66ce37f..4d5337f 100644 --- a/app/templates/v2/components/matrix_mini.html +++ b/app/templates/v2/components/matrix_mini.html @@ -3,15 +3,20 @@ Props: matrix : Dict mit Schlüsseln A1–E5, je Wert ein Dict: - { "rating": int (-2 bis 2), "symbol": str ("++"|"+"|"○"|"−"|"−−") } + { "rating": int (-5 bis +5), "symbol": str ("++"|"+"|"○"|"−"|"−−") } Fehlende Felder werden als neutral (○) dargestellt. - Farbstufen-Klassen (CSS in v2.css): - m-pp : rating 2 (++ stark fördernd) — ECG-Grün auf Weiß - m-p : rating 1 (+ fördernd) — Grün-Tint - m-0 : rating 0 (○ neutral) — Weiß - m-n : rating -1 (− widersprechend) — Rot-Tint - m-nn : rating -2 (−− stark widerspr.)— Dunkelrot + Mapping rating → Symbol → Farbklasse (vgl. models.py:MatrixEntry.to_symbol): + rating ≥ 4 → "++" → m-pp (ECG-Grün) + rating 1..3 → "+" → m-p (Grün-Tint) + rating 0 → "○" → m-0 (Weiß) + rating -1..-3→ "−" → m-n (Rot-Tint) + rating ≤ -4 → "−−" → m-nn (Dunkelrot) + + Vorher (Bug): Macro mappte nur rating ∈ {-2,-1,0,1,2}, was bei + rating ∈ {3,4,-3,-4,-5} zu inkonsistenter Faerbung fuehrte — + z.B. "+" mit rating=3 → m-0 neutral statt m-p gruen. + Jetzt: Mapping deckt die volle Skala −5..+5 ab. Verwendung: {% from "v2/components/matrix_mini.html" import matrix_mini %} @@ -51,11 +56,11 @@ } %} {% macro rating_class(r) %} - {% if r == 2 %}m-pp - {% elif r == 1 %}m-p - {% elif r == -1 %}m-n - {% elif r == -2 %}m-nn - {% else %}m-0{% endif %} + {% if r is none or r == 0 %}m-0 + {% elif r >= 4 %}m-pp + {% elif r >= 1 %}m-p + {% elif r <= -4 %}m-nn + {% else %}m-n{% endif %} {% endmacro %}