ux(v2): Partei-Dropdown statt Freitext in /v2/abos und /v2/feed
Beide Routes liefern jetzt all_canonical_keys() (ohne Landesregierung) als Dropdown- Optionen. Verhindert Tippfehler und gibt nur tatsaechlich erkannte Parteien zur Auswahl. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
7cbd46f88d
commit
6581acd28e
@ -2271,9 +2271,13 @@ async def v2_tags(request: Request, current_user: Optional[dict] = Depends(get_c
|
|||||||
@app.get("/v2/abos", response_class=HTMLResponse)
|
@app.get("/v2/abos", response_class=HTMLResponse)
|
||||||
async def v2_abos(request: Request, current_user: dict = Depends(require_auth)):
|
async def v2_abos(request: Request, current_user: dict = Depends(require_auth)):
|
||||||
"""Eigene E-Mail-Abos verwalten — auth-only."""
|
"""Eigene E-Mail-Abos verwalten — auth-only."""
|
||||||
|
from .parteien import all_canonical_keys
|
||||||
|
# Landesregierung als Filter unsinnig — ausblenden
|
||||||
|
parteien = [p for p in all_canonical_keys() if p != "Landesregierung"]
|
||||||
return templates.TemplateResponse("v2/screens/abos.html", {
|
return templates.TemplateResponse("v2/screens/abos.html", {
|
||||||
"request": request,
|
"request": request,
|
||||||
"v2_active_nav": "abos",
|
"v2_active_nav": "abos",
|
||||||
|
"parteien": parteien,
|
||||||
**_v2_template_context(current_user),
|
**_v2_template_context(current_user),
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -2281,9 +2285,12 @@ async def v2_abos(request: Request, current_user: dict = Depends(require_auth)):
|
|||||||
@app.get("/v2/feed", response_class=HTMLResponse)
|
@app.get("/v2/feed", response_class=HTMLResponse)
|
||||||
async def v2_feed(request: Request, current_user: dict = Depends(require_auth)):
|
async def v2_feed(request: Request, current_user: dict = Depends(require_auth)):
|
||||||
"""Atom-Feed-Konfigurations-Seite — auth-only."""
|
"""Atom-Feed-Konfigurations-Seite — auth-only."""
|
||||||
|
from .parteien import all_canonical_keys
|
||||||
|
parteien = [p for p in all_canonical_keys() if p != "Landesregierung"]
|
||||||
return templates.TemplateResponse("v2/screens/feed.html", {
|
return templates.TemplateResponse("v2/screens/feed.html", {
|
||||||
"request": request,
|
"request": request,
|
||||||
"v2_active_nav": "feed",
|
"v2_active_nav": "feed",
|
||||||
|
"parteien": parteien,
|
||||||
**_v2_template_context(current_user),
|
**_v2_template_context(current_user),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@ -65,7 +65,10 @@
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="abo-partei">Partei</label>
|
<label for="abo-partei">Partei</label>
|
||||||
<input type="text" id="abo-partei" placeholder="z.B. SPD oder leer = alle" autocomplete="off">
|
<select id="abo-partei">
|
||||||
|
<option value="">— alle —</option>
|
||||||
|
{% for p in parteien %}<option value="{{ p }}">{{ p }}</option>{% endfor %}
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<label for="abo-freq">Frequenz</label>
|
<label for="abo-freq">Frequenz</label>
|
||||||
|
|||||||
@ -56,7 +56,10 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<label for="feed-partei">Partei</label>
|
<label for="feed-partei">Partei</label>
|
||||||
<input type="text" id="feed-partei" placeholder="z.B. SPD (leer = alle)" oninput="feedUpdate()" autocomplete="off">
|
<select id="feed-partei" onchange="feedUpdate()">
|
||||||
|
<option value="">— alle —</option>
|
||||||
|
{% for p in parteien %}<option value="{{ p }}">{{ p }}</option>{% endfor %}
|
||||||
|
</select>
|
||||||
|
|
||||||
<label for="feed-limit">Anzahl</label>
|
<label for="feed-limit">Anzahl</label>
|
||||||
<input type="number" id="feed-limit" min="1" max="200" value="50" oninput="feedUpdate()">
|
<input type="number" id="feed-limit" min="1" max="200" value="50" oninput="feedUpdate()">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user