From 89cc5f0189211ddcd527aaeffed3fb20814daaac Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 18 Aug 2026 21:32:42 +0200 Subject: [PATCH] feat: align voting with shared UI foundations --- src/govoplan_voting/backend/manifest.py | 12 ++++++++++++ webui/src/styles/voting.css | 16 ++++++++-------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/govoplan_voting/backend/manifest.py b/src/govoplan_voting/backend/manifest.py index e62bdbf..daa8c9e 100644 --- a/src/govoplan_voting/backend/manifest.py +++ b/src/govoplan_voting/backend/manifest.py @@ -27,6 +27,7 @@ from govoplan_core.core.modules import ( ModuleManifest, NavItem, PermissionDefinition, + ProductAreaContribution, RoleTemplate, ) from govoplan_core.core.provider_governance import declared_module_architecture @@ -222,6 +223,17 @@ manifest = ModuleManifest( order=39, ), ), + product_areas=( + ProductAreaContribution( + id="meetings-decisions", + module_id=MODULE_ID, + label="i18n:govoplan-core.product_area.meetings_decisions", + icon="calendar", + description="i18n:govoplan-core.product_area.meetings_decisions_description", + surface_ids=("voting.nav.voting", "voting.route.voting"), + order=50, + ), + ), view_surfaces=( ViewSurface( id="voting.navigation", diff --git a/webui/src/styles/voting.css b/webui/src/styles/voting.css index 9357d90..4a0627a 100644 --- a/webui/src/styles/voting.css +++ b/webui/src/styles/voting.css @@ -31,7 +31,7 @@ } .voting-option-results small { - color: var(--text-muted, #65717e); + color: var(--muted); } .voting-workspace { @@ -52,7 +52,7 @@ .voting-detail-heading { justify-content: space-between; min-height: 44px; - border-bottom: 1px solid var(--border-color, #d8dde3); + border-bottom: 1px solid var(--line); } .voting-detail-heading h2, @@ -65,7 +65,7 @@ } .voting-detail-heading > div:first-child span { - color: var(--text-muted, #65717e); + color: var(--muted); font-size: 0.82rem; } @@ -75,7 +75,7 @@ } .voting-hash span { - color: var(--text-muted, #65717e); + color: var(--muted); font-size: 0.75rem; text-transform: uppercase; } @@ -88,7 +88,7 @@ .voting-cast-panel { margin-top: 18px; padding-top: 14px; - border-top: 1px solid var(--border-color, #d8dde3); + border-top: 1px solid var(--line); } .voting-options, @@ -109,7 +109,7 @@ gap: 10px; min-height: 38px; padding: 7px 9px; - background: var(--surface-muted, rgba(127, 137, 147, 0.08)); + background: var(--surface-muted); } .voting-options label > span { @@ -122,7 +122,7 @@ } .voting-history time { - color: var(--text-muted, #65717e); + color: var(--muted); font-size: 0.82rem; } @@ -189,7 +189,7 @@ grid-template-columns: minmax(180px, 1.2fr) minmax(160px, 1fr) 90px 34px; } -@media (max-width: 800px) { +@media (max-width: 760px) { .voting-option-row, .voting-elector-row { grid-template-columns: 1fr;