feat: integrate reports into Campaign navigation

This commit is contained in:
2026-07-29 22:19:24 +02:00
parent 101f3ccd7d
commit cc93945f79
7 changed files with 123 additions and 28 deletions

View File

@@ -361,7 +361,7 @@ def test_aggregate_report_task_never_implies_recipient_detail_or_export_authorit
item for item in CAMPAIGN_USER_DOCUMENTATION
if item.id == "campaigns.workflow.view-aggregate-delivery-report"
)
assert topic.metadata["route"] == "/reports"
assert topic.metadata["route"] == "/campaigns/reports"
assert "export" in topic.metadata["verification"].lower()

View File

@@ -1,8 +1,11 @@
from __future__ import annotations
from govoplan_campaign.backend.manifest import (
CAMPAIGN_MODULE_REQUIRED_ANY,
OPERATOR_QUEUE_REQUIRED_ANY,
OPERATOR_QUEUE_SURFACE_ID,
REPORTS_REQUIRED_ANY,
REPORTS_SURFACE_ID,
get_manifest,
)
from govoplan_core.core.registry import manifest_view_surfaces
@@ -31,3 +34,31 @@ def test_operator_queue_is_an_integrated_campaign_view() -> None:
]
assert len(queue_surfaces) == 1
assert queue_surfaces[0].description == "/campaigns/queue"
def test_aggregate_reports_are_an_integrated_campaign_view() -> None:
manifest = get_manifest()
assert manifest.frontend is not None
backend_nav = {item.path: item for item in manifest.nav_items}
frontend_nav = {item.path: item for item in manifest.frontend.nav_items}
assert "/reports" not in backend_nav
assert "/reports" not in frontend_nav
assert backend_nav["/campaigns"].required_any == CAMPAIGN_MODULE_REQUIRED_ANY
assert frontend_nav["/campaigns"].required_any == CAMPAIGN_MODULE_REQUIRED_ANY
routes = {route.path: route for route in manifest.frontend.routes}
assert "/reports" not in routes
report = routes["/campaigns/reports"]
assert report.component == "AggregateReportsPage"
assert report.required_any == REPORTS_REQUIRED_ANY
assert REPORTS_SURFACE_ID == "campaigns.route.reports"
assert report.surface_id == REPORTS_SURFACE_ID
report_surfaces = [
surface
for surface in manifest_view_surfaces(manifest)
if surface.id == REPORTS_SURFACE_ID
]
assert len(report_surfaces) == 1
assert report_surfaces[0].description == "/campaigns/reports"