antragstracker/static/index.html
Dotty Dotter ea3e5cd329 feat: Intuitivere Bedienung — klickbare Stats + Abstimmungs-Filter + Fraktions-Normalisierung (#14)
Dashboard:
- Neuer Endpoint GET /api/stats/dashboard mit allen Kennzahlen
- Klickbare Kacheln: Vorlagen nach Typ, Ketten nach Status → navigieren zu Filterlisten
- Umsetzungsquote als horizontaler Balken mit klickbaren Segmenten

Abstimmungen:
- Stimmverhalten-Tabelle klickbar: Fraktion oder Ja/Nein/Enthaltung → filtert
- Neuer Endpoint GET /api/abstimmungen/details (?fraktion=&stimme=) mit Pagination
- Neuer Endpoint GET /api/abstimmungen/vergleich (?f1=&f2=) für Koalitionsmatrix-Drill-Down
- Koalitionsmatrix-Zellen klickbar → zeigt Abstimmungsvergleich beider Fraktionen

Fraktions-Normalisierung:
- fraktionen_mapping.py: 40+ DB-Varianten → kanonische Namen
- 'Bündnis 90 / Die Grünen' / 'Bündnis 90/Die Grünen' / 'Grüne' → 'Grüne'
- 'Die Linke' / 'Die Linke.' / 'Linke' → 'Linke'
- BfHo-Varianten, Hagen Aktiv, Einzelvertreter etc. normalisiert
- Mapping in allen Abstimmungs-Endpoints aktiv
- ist_ratsfraktion Flag in Fraktionen-Response

Closes #14
2026-04-01 14:32:06 +02:00

41 lines
1.4 KiB
HTML

<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="/_app/immutable/entry/start.CJw4zQCo.js" rel="modulepreload">
<link href="/_app/immutable/chunks/BHBF0lbh.js" rel="modulepreload">
<link href="/_app/immutable/chunks/reyx9_7L.js" rel="modulepreload">
<link href="/_app/immutable/chunks/Pu2RPHbX.js" rel="modulepreload">
<link href="/_app/immutable/chunks/DrzKg1h1.js" rel="modulepreload">
<link href="/_app/immutable/entry/app.Bf2mSiZt.js" rel="modulepreload">
<link href="/_app/immutable/chunks/PPVm8Dsz.js" rel="modulepreload">
<link href="/_app/immutable/chunks/BwTTNG21.js" rel="modulepreload">
<link href="/_app/immutable/chunks/B89f14j0.js" rel="modulepreload">
<link href="/_app/immutable/chunks/Do7Yo2YN.js" rel="modulepreload">
<link href="/_app/immutable/chunks/DfsAIpU3.js" rel="modulepreload">
<link href="/_app/immutable/chunks/CvtDgobB.js" rel="modulepreload">
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">
<script>
{
__sveltekit_jcwz9y = {
base: ""
};
const element = document.currentScript.parentElement;
Promise.all([
import("/_app/immutable/entry/start.CJw4zQCo.js"),
import("/_app/immutable/entry/app.Bf2mSiZt.js")
]).then(([kit, app]) => {
kit.start(app, element);
});
}
</script>
</div>
</body>
</html>