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 %}