From b851173e6de46cf3f253073ed13ef530471ba9be Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Fri, 10 Apr 2026 22:13:30 +0200 Subject: [PATCH] UI-Polish: 6 Fixes aus visuellem Review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. AfD/AFD Duplikat in Partei-Stats: normalizePartei() client-seitig 2. Antragsteller:in Labels: aus item.fraktionen ableiten wenn istAntragsteller null (LLM liefert es inconsistent) 3. Überlange Titel in Liste: auf 80 Zeichen + Ellipsis gekürzt 4. Methodik-Text: "verworfen" → "verifiziert / nicht wörtlich markiert" 5. Bewertungsdatum im Header (neben Drucksache-Nr statt nur im Footer) 6. Index-Button: Schloss-Icon + Tooltip "Erfordert Anmeldung" --- app/templates/index.html | 26 ++++++++++++++++++-------- app/templates/methodik.html | 4 +++- app/templates/quellen.html | 4 ++-- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/app/templates/index.html b/app/templates/index.html index 0f4f919..a6c8fba 100644 --- a/app/templates/index.html +++ b/app/templates/index.html @@ -1109,14 +1109,22 @@ blContainer.innerHTML = ''; } - // Partei-Durchschnitte berechnen + // Partei-Durchschnitte berechnen (mit Normalisierung für AfD/AFD etc.) + const normalizePartei = (f) => { + const u = f.toUpperCase(); + if (u === 'AFD') return 'AfD'; + if (u === 'GRÜNE' || u === 'GRUENE' || u === 'BÜNDNIS 90/DIE GRÜNEN') return 'GRÜNE'; + if (u === 'DIE LINKE') return 'LINKE'; + return f; + }; const parteiStats = {}; allAssessments.forEach(a => { if (a.gwoeScore == null) return; (a.fraktionen || []).forEach(f => { - if (!parteiStats[f]) parteiStats[f] = { sum: 0, count: 0 }; - parteiStats[f].sum += a.gwoeScore; - parteiStats[f].count += 1; + const norm = normalizePartei(f); + if (!parteiStats[norm]) parteiStats[norm] = { sum: 0, count: 0 }; + parteiStats[norm].sum += a.gwoeScore; + parteiStats[norm].count += 1; }); }); @@ -1159,7 +1167,7 @@ ${blBadge}${item.drucksache} ${scoreText} -
${item.title || 'Ohne Titel'}
+
${(item.title || 'Ohne Titel').length > 80 ? (item.title.substring(0, 80) + '…') : (item.title || 'Ohne Titel')}
${fraktionen} · ${item.datum || ''}
${isUnchecked ? `