From 332453b940e8045e4618348bddb9e681fe044e16 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Thu, 7 May 2026 14:59:00 +0200 Subject: [PATCH] fix: Programm-Treue-Block bei BUND-/Antraegen mit komplett fehlenden Programmen ausblenden MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit User: '?? Hinweis: Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — keine Treue-Bewertung möglich: CDU, CSU, AfD, SPD, GRÜNE, LINKE, BSW, FDP.' Vorher zeigte die UI den Disclaimer + trotzdem die LLM- halluzinierten Programm-Treue-Scores aller 8 BT-Parteien — schlechte UX. WAHLPROGRAMME['BUND'] ist aktuell leer (keine Bundestags-Wahlprogramme indiziert), daher wird check_missing_programmes alle BT-Fraktionen als 'fehlend' markieren. Bisher wurden trotzdem die LLM-Scores rausgespielt. Fix in v3/screens/antrag_detail.html und v3/pdf/antrag_pdf.html: - Wenn _all_missing (alle Fraktionen fehlen) → ganze Programm-Treue- Sektion ausblenden, nur klare Disclaimer-Box zeigen ('Programm-Treue nicht verfuegbar — fuer dieses Parlament sind aktuell keine Programme indiziert'). - Wenn nur einzelne Fraktionen fehlen → die einzelnen Karten via {% if fs.fraktion not in _missing_set %} skippen, Disclaimer fuer die wegfallenden Fraktionen zeigen ('werden hier nicht aufgefuehrt'). Damit keine LLM-halluzinierten Scores mehr gezeigt werden, wo es keine Quelle gibt. Issue #186 (historische Programme indizieren) ist die langfristige Loesung — diese Aenderung macht die UI bis dahin ehrlich. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/templates/v3/pdf/antrag_pdf.html | 21 ++++++++++++++-- app/templates/v3/screens/antrag_detail.html | 27 ++++++++++++++++++--- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/app/templates/v3/pdf/antrag_pdf.html b/app/templates/v3/pdf/antrag_pdf.html index f981d0f..4a9229b 100644 --- a/app/templates/v3/pdf/antrag_pdf.html +++ b/app/templates/v3/pdf/antrag_pdf.html @@ -653,15 +653,30 @@ {% if assessment.wahlprogramm_scores %} + {% set _missing_set = (assessment.fehlende_programme or []) | map('lower') | list %} + {% set _all_missing = assessment.fehlende_programme and (assessment.wahlprogramm_scores | length == assessment.fehlende_programme | length) %} + {% if _all_missing %} +
+

Programm-Treue pro Fraktion

+

+ Programm-Treue nicht verfügbar. + Für dieses Parlament ({{ bundesland }}) sind aktuell keine Wahl- und + Parteiprogramme indiziert. Eine inhaltliche Bewertung gegen die einzelnen + Programme ist damit nicht möglich; um halluzinierte Scores zu vermeiden, + wird die Programm-Treue-Sektion hier nicht ausgewiesen. +

+
+ {% else %}

Programm-Treue pro Fraktion

{% if assessment.fehlende_programme %}

- Hinweis: Für folgende Parteien lag kein Wahl-/Parteiprogramm vor: + Hinweis: Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — sie werden hier nicht aufgeführt: {{ assessment.fehlende_programme | join(", ") }}.

{% endif %} {% for fs in assessment.wahlprogramm_scores %} + {% if fs.fraktion | lower not in _missing_set %}
{{ fs.fraktion }} @@ -694,9 +709,11 @@
{% endfor %}
+ {% endif %}{# fraktion not in fehlende_programme #} {% endfor %}
- {% endif %} + {% endif %}{# _all_missing-else #} + {% endif %}{# wahlprogramm_scores #} {% if assessment.verbesserungen %} diff --git a/app/templates/v3/screens/antrag_detail.html b/app/templates/v3/screens/antrag_detail.html index fa7bac0..92f453b 100644 --- a/app/templates/v3/screens/antrag_detail.html +++ b/app/templates/v3/screens/antrag_detail.html @@ -180,18 +180,37 @@ {% endif %} - {# 6 ── Programm-Treue ─────────────────────────────────────────────── #} + {# 6 ── Programm-Treue — wird komplett ausgeblendet wenn ALLE + Fraktionen ohne Programm sind (typisch bei Bundestags-Antraegen, + wo aktuell keine Programme indiziert sind), sonst werden nur + die einzelnen Fraktionen ohne Programm gefiltert. #} {% if antrag.fraktions_scores %} + {% set _missing_set = (antrag.fehlende_programme or []) | map('lower') | list %} + {% set _all_missing = antrag.fehlende_programme and (antrag.fraktions_scores | length == antrag.fehlende_programme | length) %} + + {% if _all_missing %} +
+

Programm-Treue pro Fraktion

+
+ Programm-Treue nicht verfügbar. + Für dieses Parlament ({{ antrag.bundesland }}) sind aktuell keine Wahl- und + Parteiprogramme indiziert. Eine inhaltliche Bewertung gegen die einzelnen + Programme ist damit nicht möglich; die Programm-Treue-Sektion wird nicht + angezeigt, um halluzinierte Scores zu vermeiden. +
+
+ {% else %}

Programm-Treue pro Fraktion

{% if antrag.fehlende_programme %}
- Hinweis: Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — keine Treue-Bewertung möglich: + Hinweis: Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — sie werden hier nicht aufgeführt: {{ antrag.fehlende_programme | join(", ") }}.
{% endif %}
{% for fs in antrag.fraktions_scores %} + {% if fs.fraktion | lower not in _missing_set %}
{{ fs.fraktion }} @@ -229,10 +248,12 @@ {% endfor %}
+ {% endif %}{# fraktion nicht in fehlende_programme #} {% endfor %}
- {% endif %} + {% endif %}{# _all_missing-else #} + {% endif %}{# fraktions_scores #} {# 7 ── Verbesserungsvorschläge — volle Breite, nicht kollabiert ───── #} {% if antrag.verbesserungen %}