feat: integrate reports into Campaign navigation
This commit is contained in:
@@ -338,7 +338,7 @@ CAMPAIGN_USER_DOCUMENTATION = (
|
||||
order=37,
|
||||
audience=("campaign_aggregate_reader", "campaign_reader", "campaign_manager"),
|
||||
required_scopes=("campaigns:report:read",),
|
||||
route="/reports",
|
||||
route="/campaigns/reports",
|
||||
screen="Reports",
|
||||
help_contexts=("campaign.report",),
|
||||
prerequisites=("The campaign is owned by or explicitly shared with you, or you hold tenant-wide authority.",),
|
||||
@@ -351,7 +351,7 @@ CAMPAIGN_USER_DOCUMENTATION = (
|
||||
outcome="A business-level Campaign outcome view with small-group and recipient privacy preserved.",
|
||||
verification="No row, address, message, attachment, diagnostic, filter, drill-down, or export action is available from the aggregate view.",
|
||||
related_topic_ids=("campaigns.workflow.view-delivery-report",),
|
||||
links=(DocumentationLink(label="Aggregate Campaign reports", href="/reports", kind="runtime"),),
|
||||
links=(DocumentationLink(label="Aggregate Campaign reports", href="/campaigns/reports", kind="runtime"),),
|
||||
),
|
||||
_workflow_topic(
|
||||
topic_id="campaigns.workflow.view-delivery-report",
|
||||
|
||||
@@ -88,6 +88,13 @@ OPERATOR_QUEUE_REQUIRED_ANY = (
|
||||
)
|
||||
# Preserve the former /operator route identity for saved View projections.
|
||||
OPERATOR_QUEUE_SURFACE_ID = "campaigns.route.operator"
|
||||
# Preserve the former /reports route identity for saved View projections.
|
||||
REPORTS_SURFACE_ID = "campaigns.route.reports"
|
||||
REPORTS_REQUIRED_ANY = ("campaigns:report:read",)
|
||||
CAMPAIGN_MODULE_REQUIRED_ANY = (
|
||||
"campaigns:campaign:read",
|
||||
*REPORTS_REQUIRED_ANY,
|
||||
)
|
||||
|
||||
ROLE_TEMPLATES = (
|
||||
RoleTemplate(
|
||||
@@ -230,8 +237,7 @@ manifest = ModuleManifest(
|
||||
role_templates=ROLE_TEMPLATES,
|
||||
tenant_summary_providers=(_tenant_summary,),
|
||||
nav_items=(
|
||||
NavItem(path="/campaigns", label="Campaigns", icon="campaign", required_any=("campaigns:campaign:read",), order=20),
|
||||
NavItem(path="/reports", label="Reports", icon="clipboard-pen-line", required_any=("campaigns:report:read",), order=70),
|
||||
NavItem(path="/campaigns", label="Campaigns", icon="campaign", required_any=CAMPAIGN_MODULE_REQUIRED_ANY, order=20),
|
||||
),
|
||||
frontend=FrontendModule(
|
||||
module_id="campaigns",
|
||||
@@ -239,8 +245,8 @@ manifest = ModuleManifest(
|
||||
routes=(
|
||||
FrontendRoute(
|
||||
path="/campaigns",
|
||||
component="CampaignListPage",
|
||||
required_any=("campaigns:campaign:read",),
|
||||
component="CampaignModulePage",
|
||||
required_any=CAMPAIGN_MODULE_REQUIRED_ANY,
|
||||
order=20,
|
||||
),
|
||||
FrontendRoute(
|
||||
@@ -258,16 +264,16 @@ manifest = ModuleManifest(
|
||||
order=22,
|
||||
),
|
||||
FrontendRoute(
|
||||
path="/reports",
|
||||
path="/campaigns/reports",
|
||||
component="AggregateReportsPage",
|
||||
required_any=("campaigns:report:read",),
|
||||
order=70,
|
||||
required_any=REPORTS_REQUIRED_ANY,
|
||||
order=22,
|
||||
surface_id=REPORTS_SURFACE_ID,
|
||||
),
|
||||
FrontendRoute(path="/templates", component="TemplatesPage", order=90),
|
||||
),
|
||||
nav_items=(
|
||||
NavItem(path="/campaigns", label="Campaigns", icon="campaign", required_any=("campaigns:campaign:read",), order=20),
|
||||
NavItem(path="/reports", label="Reports", icon="clipboard-pen-line", required_any=("campaigns:report:read",), order=70),
|
||||
NavItem(path="/campaigns", label="Campaigns", icon="campaign", required_any=CAMPAIGN_MODULE_REQUIRED_ANY, order=20),
|
||||
NavItem(path="/templates", label="Templates", icon="layout-template", order=90),
|
||||
),
|
||||
view_surfaces=(
|
||||
@@ -461,7 +467,7 @@ manifest = ModuleManifest(
|
||||
),
|
||||
links=(
|
||||
DocumentationLink(label="Campaign operator queue", href="/campaigns/queue", kind="runtime"),
|
||||
DocumentationLink(label="Campaign reports", href="/reports", kind="runtime"),
|
||||
DocumentationLink(label="Campaign reports", href="/campaigns/reports", kind="runtime"),
|
||||
DocumentationLink(label="Campaign delivery runbook", href="govoplan-campaign/docs/CAMPAIGN_DELIVERY_RUNBOOK.md", kind="repository"),
|
||||
),
|
||||
related_modules=("mail", "audit"),
|
||||
|
||||
Reference in New Issue
Block a user