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)
|
||||
async def v2_abos(request: Request, current_user: dict = Depends(require_auth)):
|
||||
"""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", {
|
||||
"request": request,
|
||||
"v2_active_nav": "abos",
|
||||
"parteien": parteien,
|
||||
**_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)
|
||||
async def v2_feed(request: Request, current_user: dict = Depends(require_auth)):
|
||||
"""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", {
|
||||
"request": request,
|
||||
"v2_active_nav": "feed",
|
||||
"parteien": parteien,
|
||||
**_v2_template_context(current_user),
|
||||
})
|
||||
|
||||
|
||||
@ -65,7 +65,10 @@
|
||||
</div>
|
||||
<div>
|
||||
<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>
|
||||
<label for="abo-freq">Frequenz</label>
|
||||
|
||||
@ -56,7 +56,10 @@
|
||||
</select>
|
||||
|
||||
<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>
|
||||
<input type="number" id="feed-limit" min="1" max="200" value="50" oninput="feedUpdate()">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user