diff --git a/backend/src/tracker/api/routes/bewertung.py b/backend/src/tracker/api/routes/bewertung.py index d36c403..ca77939 100644 --- a/backend/src/tracker/api/routes/bewertung.py +++ b/backend/src/tracker/api/routes/bewertung.py @@ -272,9 +272,31 @@ def _run_ketten_bewertung(kette_id: int, anmerkung: str, job_id: str): ), ) - # Rebuild chain status - from tracker.core.chains import build_single_chain - build_single_chain(conn, kette["ursprung_id"]) + # Update chain status based on KI score + score = result.get("score", 0) + bewertung = result.get("bewertung", "") + + # Map KI bewertung → Ketten-Status + if score >= 0.7: + new_status = "umgesetzt" + begruendung = f"KI-Bewertung: {score*100:.0f}% umgesetzt. {result.get('begruendung', '')}" + elif score >= 0.4: + new_status = "teilweise_umgesetzt" + begruendung = f"KI-Bewertung: {score*100:.0f}% teilweise umgesetzt. {result.get('begruendung', '')}" + elif bewertung == "abgewiegelt" or bewertung == "nebelkerze": + new_status = "abgewiegelt" + begruendung = f"KI-Bewertung: {score*100:.0f}% — {bewertung}. {result.get('begruendung', '')}" + elif score < 0.3: + new_status = "versandet" + begruendung = f"KI-Bewertung: {score*100:.0f}%. {result.get('begruendung', '')}" + else: + new_status = kette["status"] # Keep current + begruendung = kette["begruendung"] + + conn.execute( + "UPDATE ketten SET status = ?, begruendung = ? WHERE id = ?", + (new_status, begruendung, kette_id), + ) conn.commit() conn.close() diff --git a/backend/src/tracker/core/ampel.py b/backend/src/tracker/core/ampel.py index 13a0b05..583f271 100644 --- a/backend/src/tracker/core/ampel.py +++ b/backend/src/tracker/core/ampel.py @@ -33,6 +33,7 @@ STRANG_ZUSTAENDE: dict[str, list[dict]] = { # Endstatus die von der Hauptreihe abzweigen ABZWEIGUNGEN: dict[str, dict] = { "abgelehnt": {"label": "Abgelehnt", "farbe": "rot"}, + "abgewiegelt": {"label": "Abgewiegelt", "farbe": "rot"}, "versandet": {"label": "Versandet", "farbe": "rot"}, "teilweise_umgesetzt": {"label": "Teilweise umgesetzt", "farbe": "amber"}, "verwiesen": {"label": "Verwiesen", "farbe": "gelb"}, @@ -115,7 +116,6 @@ def _normalize_abzweigung_id(status: str) -> str: """Normalize status string to ABZWEIGUNGEN key.""" mapping = { "zurückgezogen": "zurueckgezogen", - "abgewiegelt": "versandet", # Abgewiegelt → same visual as versandet } return mapping.get(status, status)