fix(#177): _row_to_detail Matrix-Rating-Shift entfernt — Wurzel von '+/++ gleichfarbig'
DB speichert seit langem die volle -5..+5 Skala (siehe models.py MatrixEntry mit ge=-5, le=5), aber _row_to_detail shiftet noch 'rating - 3' (Migration-Reste der alten 1..5 → -2..+2-Skala). Folge: rating=5 wurde zu 2, rating=4 zu 1, beide landeten im matrix_mini auf der m-p-Klasse (rating 1..3) → kraftiges Gruen (m-pp) wurde fast nie ausgespielt. Fix: kein Shift; defensive int-Konversion + Clamp -5..+5. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c87b99f778
commit
ee93fcd76a
15
app/main.py
15
app/main.py
@ -421,9 +421,18 @@ def _row_to_detail(row):
|
||||
field = cell.get("field", "")
|
||||
if field:
|
||||
rating_raw = cell.get("rating", 0)
|
||||
# DB speichert rating als 1-5 Skala (1=−−,2=−,3=○,4=+,5=++),
|
||||
# matrix_mini erwartet -2..+2. Mapping: DB-3=0, DB-4=+1, DB-5=+2, DB-2=−1, DB-1=−2
|
||||
rating_normalized = int(rating_raw) - 3
|
||||
# DB speichert rating als −5..+5 Skala (siehe models.py:MatrixEntry).
|
||||
# matrix_mini erwartet die gleiche Skala — kein Shift.
|
||||
# (Frueher 1..5 → -2..+2 mit `- 3`; DB-Migration auf -5..+5 ist
|
||||
# laengst durch, der Shift war ein Bug der ratings={3,4,5} alle
|
||||
# auf m-p mapped → "+/++ gleichfarbig"-Befund aus #177.)
|
||||
try:
|
||||
rating_normalized = int(rating_raw)
|
||||
except (TypeError, ValueError):
|
||||
rating_normalized = 0
|
||||
# Defensiv: wenn rating ausserhalb -5..+5 liegt, clampen.
|
||||
if rating_normalized < -5: rating_normalized = -5
|
||||
if rating_normalized > 5: rating_normalized = 5
|
||||
symbol = cell.get("symbol", "○")
|
||||
matrix_dict[field] = {"rating": rating_normalized, "symbol": symbol}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user