Quellen-Seite: Programme nach Bundesland gruppiert statt einer langen Liste
This commit is contained in:
parent
9e341a695f
commit
d75e9441a3
19
app/main.py
19
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,
|
||||
})
|
||||
|
||||
|
||||
@ -218,9 +218,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Wahlprogramme NRW 2022</h2>
|
||||
{% for bl_name, bl_progs in wahlprogramme_grouped %}
|
||||
<h2>{{ bl_name }}</h2>
|
||||
<div class="programme-grid">
|
||||
{% for prog in programmes if prog.typ == 'wahlprogramm' %}
|
||||
{% for prog in bl_progs %}
|
||||
<div class="programme-card" style="display: flex; gap: 1rem;">
|
||||
<a href="{{ prog.pdf_url }}" target="_blank" style="flex-shrink: 0;">
|
||||
<img src="/api/programme/thumbnail/{{ prog.id }}" alt="{{ prog.name }}"
|
||||
@ -250,10 +251,11 @@
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
<h2>Grundsatzprogramme</h2>
|
||||
<h2>Grundsatzprogramme (Bundesebene)</h2>
|
||||
<div class="programme-grid">
|
||||
{% for prog in programmes if prog.typ == 'parteiprogramm' %}
|
||||
{% for prog in grundsatzprogramme %}
|
||||
<div class="programme-card" style="display: flex; gap: 1rem;">
|
||||
<a href="{{ prog.pdf_url }}" target="_blank" style="flex-shrink: 0;">
|
||||
<img src="/api/programme/thumbnail/{{ prog.id }}" alt="{{ prog.name }}"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user