feat: Neubewertung aktualisiert Ketten-Status + Ampel zeigt abgewiegelt
- KI-Score → Ketten-Status: >=0.7 umgesetzt, >=0.4 teilweise, <0.3 versandet/abgewiegelt - 'abgewiegelt' als eigene Abzweigung in Ampel (rot, nicht mehr auf versandet gemappt) - Kette 36 (0021/2026): 20% Score → Ampel zeigt rote Abzweigung 'Abgewiegelt'
This commit is contained in:
parent
d99706cd64
commit
2d2e335ac3
@ -272,9 +272,31 @@ def _run_ketten_bewertung(kette_id: int, anmerkung: str, job_id: str):
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
# Rebuild chain status
|
# Update chain status based on KI score
|
||||||
from tracker.core.chains import build_single_chain
|
score = result.get("score", 0)
|
||||||
build_single_chain(conn, kette["ursprung_id"])
|
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.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
|
|
||||||
|
|||||||
@ -33,6 +33,7 @@ STRANG_ZUSTAENDE: dict[str, list[dict]] = {
|
|||||||
# Endstatus die von der Hauptreihe abzweigen
|
# Endstatus die von der Hauptreihe abzweigen
|
||||||
ABZWEIGUNGEN: dict[str, dict] = {
|
ABZWEIGUNGEN: dict[str, dict] = {
|
||||||
"abgelehnt": {"label": "Abgelehnt", "farbe": "rot"},
|
"abgelehnt": {"label": "Abgelehnt", "farbe": "rot"},
|
||||||
|
"abgewiegelt": {"label": "Abgewiegelt", "farbe": "rot"},
|
||||||
"versandet": {"label": "Versandet", "farbe": "rot"},
|
"versandet": {"label": "Versandet", "farbe": "rot"},
|
||||||
"teilweise_umgesetzt": {"label": "Teilweise umgesetzt", "farbe": "amber"},
|
"teilweise_umgesetzt": {"label": "Teilweise umgesetzt", "farbe": "amber"},
|
||||||
"verwiesen": {"label": "Verwiesen", "farbe": "gelb"},
|
"verwiesen": {"label": "Verwiesen", "farbe": "gelb"},
|
||||||
@ -115,7 +116,6 @@ def _normalize_abzweigung_id(status: str) -> str:
|
|||||||
"""Normalize status string to ABZWEIGUNGEN key."""
|
"""Normalize status string to ABZWEIGUNGEN key."""
|
||||||
mapping = {
|
mapping = {
|
||||||
"zurückgezogen": "zurueckgezogen",
|
"zurückgezogen": "zurueckgezogen",
|
||||||
"abgewiegelt": "versandet", # Abgewiegelt → same visual as versandet
|
|
||||||
}
|
}
|
||||||
return mapping.get(status, status)
|
return mapping.get(status, status)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user