feat(#106 Folge): Datenquellen-Tabelle auf /methodik um Plenum-Vote-Spalte erweitert

Pro BL zeigt die Tabelle nun:
- Doku-System (wie bisher)
- Drucksachen: alle aktiv (Adapter laufen)
- Plenum-Votes: 'aktiv' wenn Parser registriert (NRW), sonst 'Stub'

Plus Erklär-Hinweis: 'Plenum-Votes = fraktions-aggregierte
Abstimmungs­ergebnisse aus den Plenarprotokollen (#106). Stubs sind
Tracking-Stellen fuer kuenftige Implementierungen (Issues #148-#163).'

main.py reicht supported_bundeslaender() aus protokoll_parsers an die
Template-Context durch (plenum_vote_parsers-Set).
This commit is contained in:
Dotty Dotter 2026-04-28 23:12:58 +02:00
parent 62fd25fbcb
commit 30d51da5f7
2 changed files with 30 additions and 2 deletions

View File

@ -1743,6 +1743,7 @@ async def methodik_page(request: Request, current_user: Optional[dict] = Depends
from .bundeslaender import aktive_bundeslaender, BUNDESLAENDER
from .embeddings import get_indexing_status
from .analyzer import get_system_prompt, get_user_prompt_template
from .protokoll_parsers import supported_bundeslaender as _plenum_supported
bl_list = []
for bl in aktive_bundeslaender():
@ -1753,6 +1754,7 @@ async def methodik_page(request: Request, current_user: Optional[dict] = Depends
})
status = get_indexing_status()
plenum_vote_parsers = set(_plenum_supported()) # z.B. {"NRW"}
return templates.TemplateResponse("v2/screens/methodik.html", {
"request": request,
@ -1763,6 +1765,7 @@ async def methodik_page(request: Request, current_user: Optional[dict] = Depends
"programme_count": status.get("total", 0),
"chunk_count": sum(p.get("chunks", 0) for p in status.get("programmes", [])),
"bundeslaender": sorted(bl_list, key=lambda x: x["name"]),
"plenum_vote_parsers": plenum_vote_parsers,
"system_prompt": get_system_prompt(),
"user_prompt_template": get_user_prompt_template(),
**_v2_template_context(current_user),

View File

@ -470,11 +470,36 @@
<div class="v2-kasten outline-green">
<p><strong>{{ adapter_count }} Parlamente</strong> angebunden:</p>
<table>
<tr><th>Parlament</th><th>System</th></tr>
<tr>
<th>Parlament</th>
<th>Doku-System</th>
<th title="Antraegeund Drucksachen werden ueber den Adapter gesucht und gelistet">Drucksachen</th>
<th title="Plenarprotokoll-Parser fuer fraktions-aggregierte Abstimmungsergebnisse">Plenum-Votes</th>
</tr>
{% for bl in bundeslaender %}
<tr><td>{{ bl.name }} ({{ bl.code }})</td><td>{{ bl.doku_system }}</td></tr>
<tr>
<td>{{ bl.name }} ({{ bl.code }})</td>
<td>{{ bl.doku_system }}</td>
<td style="color:var(--ecg-teal);">✓ aktiv</td>
<td>
{% if bl.code in plenum_vote_parsers %}
<span style="color:var(--ecg-teal);">✓ aktiv</span>
{% else %}
<span style="opacity:0.55;" title="Stub-Modul vorhanden, Parser noch nicht implementiert">○ Stub</span>
{% endif %}
</td>
</tr>
{% endfor %}
</table>
<p style="margin-top:0.5rem;font-size:11px;opacity:0.7;">
<strong>Plenum-Votes</strong> = fraktions-aggregierte
Abstimmungs­ergebnisse aus den Plenarprotokollen
(#106). Dort wo der Parser
aktiv ist, zeigt die Antrag-Detail-Seite einen Block
„Abstimmungs­ergebnis" mit Ja/Nein/Enthaltung pro Fraktion.
Stubs sind Tracking-Stellen fuer kuenftige Implementierungen
(Issues <a href="https://repo.toppyr.de/tobias/gwoe-antragspruefer/issues?q=protokoll-parser" target="_blank">#148#163</a>).
</p>
<p style="margin-top:0.75rem;font-size:11px;">
<a href="/quellen">Programme &amp; Quellen</a> ·
<a href="/api/auswertungen/export.json" download>Open Data (JSON)</a> ·