diff --git a/app/main.py b/app/main.py index 6c0a330..c9ce1e9 100644 --- a/app/main.py +++ b/app/main.py @@ -756,14 +756,31 @@ async def methodik_page(request: Request): @app.get("/quellen", response_class=HTMLResponse) async def quellen_page(request: Request): - """Quellen-Seite mit allen Wahl- und Parteiprogrammen.""" + """Quellen-Seite mit allen Wahl- und Parteiprogrammen, nach BL gruppiert.""" + from .bundeslaender import BUNDESLAENDER programmes = get_programme_info() status = get_indexing_status() - + + # Wahlprogramme nach Bundesland gruppieren + by_bl: dict[str, list] = {} + grundsatz = [] + for prog in programmes: + if prog["typ"] == "parteiprogramm": + grundsatz.append(prog) + else: + bl = prog.get("bundesland") or "Sonstige" + bl_name = BUNDESLAENDER[bl].name if bl in BUNDESLAENDER else bl + by_bl.setdefault(bl_name, []).append(prog) + + # Sortieren: alphabetisch nach BL-Name + wahlprogramme_grouped = sorted(by_bl.items()) + return templates.TemplateResponse("quellen.html", { "request": request, "app_name": settings.app_name, "programmes": programmes, + "wahlprogramme_grouped": wahlprogramme_grouped, + "grundsatzprogramme": grundsatz, "status": status, }) diff --git a/app/templates/quellen.html b/app/templates/quellen.html index cb446d6..54056d1 100644 --- a/app/templates/quellen.html +++ b/app/templates/quellen.html @@ -218,9 +218,10 @@ -

Wahlprogramme NRW 2022

+ {% for bl_name, bl_progs in wahlprogramme_grouped %} +

{{ bl_name }}

- {% for prog in programmes if prog.typ == 'wahlprogramm' %} + {% for prog in bl_progs %}
{{ prog.name }} {% endfor %}
+ {% endfor %} -

Grundsatzprogramme

+

Grundsatzprogramme (Bundesebene)

- {% for prog in programmes if prog.typ == 'parteiprogramm' %} + {% for prog in grundsatzprogramme %}