From 8d0a2608edc2a157e3c5eadee258d52135d9a248 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 28 Jul 2026 21:04:55 +0200 Subject: [PATCH] Declare campaign route View surfaces --- src/govoplan_campaign/backend/manifest.py | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/govoplan_campaign/backend/manifest.py b/src/govoplan_campaign/backend/manifest.py index a0affbd..999bd09 100644 --- a/src/govoplan_campaign/backend/manifest.py +++ b/src/govoplan_campaign/backend/manifest.py @@ -16,6 +16,7 @@ from govoplan_core.core.modules import ( DocumentationLink, DocumentationTopic, FrontendModule, + FrontendRoute, MigrationSpec, ModuleContext, ModuleInterfaceProvider, @@ -216,6 +217,39 @@ manifest = ModuleManifest( frontend=FrontendModule( module_id="campaigns", package_name="@govoplan/campaign-webui", + routes=( + FrontendRoute( + path="/campaigns", + component="CampaignListPage", + required_any=("campaigns:campaign:read",), + order=20, + ), + FrontendRoute( + path="/campaigns/:campaignId/*", + component="CampaignWorkspace", + required_any=("campaigns:campaign:read",), + order=21, + ), + FrontendRoute( + path="/operator", + component="OperatorQueuePage", + required_all=("campaigns:campaign:read",), + required_any=( + "campaigns:campaign:queue", + "campaigns:campaign:retry", + "campaigns:campaign:reconcile", + "campaigns:campaign:control", + ), + order=30, + ), + FrontendRoute( + path="/reports", + component="AggregateReportsPage", + required_any=("campaigns:report:read",), + order=70, + ), + FrontendRoute(path="/templates", component="TemplatesPage", order=90), + ), nav_items=( NavItem(path="/campaigns", label="Campaigns", icon="campaign", required_any=("campaigns:campaign:read",), order=20), NavItem(