fix: Programm-Treue-Block bei BUND-/Antraegen mit komplett fehlenden Programmen ausblenden
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) <noreply@anthropic.com>
This commit is contained in:
parent
55423e92e3
commit
332453b940
@ -653,15 +653,30 @@
|
|||||||
|
|
||||||
<!-- ─── Programm-Treue pro Fraktion ─────────────────────────────────── -->
|
<!-- ─── Programm-Treue pro Fraktion ─────────────────────────────────── -->
|
||||||
{% if assessment.wahlprogramm_scores %}
|
{% 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 %}
|
||||||
|
<div class="pdf-section">
|
||||||
|
<h2 class="pdf-h2">Programm-Treue pro Fraktion</h2>
|
||||||
|
<p style="font-size:9pt;color:#555;line-height:1.55;padding:6pt 10pt;background:rgba(247,148,29,0.08);border-left:3pt solid #bf6c10;border-radius:1pt;">
|
||||||
|
<strong>Programm-Treue nicht verfügbar.</strong>
|
||||||
|
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.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
<div class="pdf-section">
|
<div class="pdf-section">
|
||||||
<h2 class="pdf-h2">Programm-Treue pro Fraktion</h2>
|
<h2 class="pdf-h2">Programm-Treue pro Fraktion</h2>
|
||||||
{% if assessment.fehlende_programme %}
|
{% if assessment.fehlende_programme %}
|
||||||
<p style="font-size:9pt;color:#555;margin-bottom:6pt;">
|
<p style="font-size:9pt;color:#555;margin-bottom:6pt;">
|
||||||
<strong>Hinweis:</strong> Für folgende Parteien lag kein Wahl-/Parteiprogramm vor:
|
<strong>Hinweis:</strong> Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — sie werden hier nicht aufgeführt:
|
||||||
{{ assessment.fehlende_programme | join(", ") }}.
|
{{ assessment.fehlende_programme | join(", ") }}.
|
||||||
</p>
|
</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for fs in assessment.wahlprogramm_scores %}
|
{% for fs in assessment.wahlprogramm_scores %}
|
||||||
|
{% if fs.fraktion | lower not in _missing_set %}
|
||||||
<div class="pdf-fraktion">
|
<div class="pdf-fraktion">
|
||||||
<div class="pdf-fraktion-head">
|
<div class="pdf-fraktion-head">
|
||||||
<span class="pdf-fraktion-name">{{ fs.fraktion }}</span>
|
<span class="pdf-fraktion-name">{{ fs.fraktion }}</span>
|
||||||
@ -694,9 +709,11 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}{# fraktion not in fehlende_programme #}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}{# _all_missing-else #}
|
||||||
|
{% endif %}{# wahlprogramm_scores #}
|
||||||
|
|
||||||
<!-- ─── Verbesserungsvorschläge (Redline-Diff) ─────────────────────── -->
|
<!-- ─── Verbesserungsvorschläge (Redline-Diff) ─────────────────────── -->
|
||||||
{% if assessment.verbesserungen %}
|
{% if assessment.verbesserungen %}
|
||||||
|
|||||||
@ -180,18 +180,37 @@
|
|||||||
</section>
|
</section>
|
||||||
{% endif %}
|
{% 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 %}
|
{% 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 %}
|
||||||
|
<section class="v3-section">
|
||||||
|
<h3 class="v3-h3">Programm-Treue pro Fraktion</h3>
|
||||||
|
<div class="v3-disclaimer">
|
||||||
|
<strong>Programm-Treue nicht verfügbar.</strong>
|
||||||
|
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.
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{% else %}
|
||||||
<section class="v3-section">
|
<section class="v3-section">
|
||||||
<h3 class="v3-h3">Programm-Treue pro Fraktion</h3>
|
<h3 class="v3-h3">Programm-Treue pro Fraktion</h3>
|
||||||
{% if antrag.fehlende_programme %}
|
{% if antrag.fehlende_programme %}
|
||||||
<div class="v3-disclaimer">
|
<div class="v3-disclaimer">
|
||||||
<strong>Hinweis:</strong> Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — keine Treue-Bewertung möglich:
|
<strong>Hinweis:</strong> Für folgende Parteien lag kein Wahl-/Parteiprogramm vor — sie werden hier nicht aufgeführt:
|
||||||
{{ antrag.fehlende_programme | join(", ") }}.
|
{{ antrag.fehlende_programme | join(", ") }}.
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div class="v3-fraktionen">
|
<div class="v3-fraktionen">
|
||||||
{% for fs in antrag.fraktions_scores %}
|
{% for fs in antrag.fraktions_scores %}
|
||||||
|
{% if fs.fraktion | lower not in _missing_set %}
|
||||||
<div class="v3-fraktion">
|
<div class="v3-fraktion">
|
||||||
<div class="v3-fraktion-head">
|
<div class="v3-fraktion-head">
|
||||||
<span class="v3-fraktion-name">{{ fs.fraktion }}</span>
|
<span class="v3-fraktion-name">{{ fs.fraktion }}</span>
|
||||||
@ -229,10 +248,12 @@
|
|||||||
</details>
|
</details>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}{# fraktion nicht in fehlende_programme #}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{% endif %}
|
{% endif %}{# _all_missing-else #}
|
||||||
|
{% endif %}{# fraktions_scores #}
|
||||||
|
|
||||||
{# 7 ── Verbesserungsvorschläge — volle Breite, nicht kollabiert ───── #}
|
{# 7 ── Verbesserungsvorschläge — volle Breite, nicht kollabiert ───── #}
|
||||||
{% if antrag.verbesserungen %}
|
{% if antrag.verbesserungen %}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user