From 7cf073122f09c09c60a2abe59f1c5d7930e70787 Mon Sep 17 00:00:00 2001 From: Dotty Dotter Date: Thu, 9 Apr 2026 11:30:10 +0200 Subject: [PATCH] Phase E (substituted): Auswertungen-Drilldown-Modal (#59) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sachsen-Adapter (#26/#38) ist Eigensystem mit ASP.NET-Webforms-Postbacks (__VIEWSTATE/__CALLBACKID, siehe bundeslaender.py:343-348) und braucht HAR-Aufnahme → Blocker für autonome Bearbeitung. Phase E entsprechend substituiert mit der Frontend-Erweiterung der Auswertungen. - Matrix-Zellen sind jetzt klickbar (`cell-with-data`-Klasse + hover-outline mit Blue-Border) - Klick öffnet ein Modal, das `/api/auswertungen/zeitreihe? bundesland=...&partei=...` aufruft und die Score-Entwicklung dieser (BL, Partei)-Kombination über alle bekannten WPs als Tabelle rendert - ESC-Taste oder Backdrop-Klick schließt das Modal - Schließt damit den Frontend-Loop für die in Phase C gebauten Backend-Endpoints (CLAUDE.md-Sync separat — die Datei liegt im Projekt-Root außerhalb des Webapp-Git-Repos.) Refs: #59 (Phase E substituted) Co-Authored-By: Claude Opus 4.6 (1M context) --- app/templates/auswertungen.html | 104 +++++++++++++++++++++++++++++++- 1 file changed, 103 insertions(+), 1 deletion(-) diff --git a/app/templates/auswertungen.html b/app/templates/auswertungen.html index 28a912b..fc56746 100644 --- a/app/templates/auswertungen.html +++ b/app/templates/auswertungen.html @@ -104,6 +104,59 @@ border-radius: 4px; color: var(--color-lightgray); } + table.matrix td.cell-with-data { + cursor: pointer; + } + table.matrix td.cell-with-data:hover { + outline: 2px solid var(--color-blue); + outline-offset: -2px; + } + .modal-backdrop { + position: fixed; + inset: 0; + background: rgba(0, 0, 0, 0.45); + display: none; + align-items: center; + justify-content: center; + z-index: 100; + } + .modal-backdrop.show { display: flex; } + .modal { + background: white; + border-radius: 6px; + padding: 1.5rem 2rem; + min-width: 320px; + max-width: 90vw; + max-height: 80vh; + overflow-y: auto; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.25); + } + .modal h2 { + color: var(--color-blue); + margin-bottom: 0.8rem; + font-size: 1.1rem; + } + .modal table { + width: 100%; + border-collapse: collapse; + margin-top: 0.5rem; + } + .modal table th, .modal table td { + padding: 0.4rem 0.8rem; + border-bottom: 1px solid var(--color-bg); + text-align: left; + font-size: 0.85rem; + } + .modal table th { background: var(--color-bg); } + .modal-close { + float: right; + background: none; + border: none; + font-size: 1.2rem; + cursor: pointer; + color: var(--color-lightgray); + } + .modal-close:hover { color: var(--color-darkgray); } @@ -136,6 +189,15 @@
+ + +