Marketing · Activity list & duplication

Lists the centre’s marketing activities with type, segment, date range and status (planned / active / finished / closed), and offers edit, duplicate, delete and — for finished activities — the report view.

AreaMarketing
Routesmarketing.campaigns · marketing.campaigns.index
Centre modulesmarketing
Staff levelsroot · admin · manager · crmmanager · weboperator · content_creator · owner
Modelscampaign · campaignrule
UI labeltitle.header.marketing.campaigns / menu.navbar.marketing.campaign.index
Coverage4 use cases · 1 happy · 4 failure

Known issues (2)

How it works

Status drives almost every permission: canEdit lets root/admin edit anything but restricts manager/scmanager/weboperator/content_creator to activities that are not closed or finished; canDelete similarly protects closed and finished activities from everyone but root/admin; canShow (the report) is only available once the status is finished. canEditRaffle additionally blocks structural edits once any raffle rule has issued tickets. Duplication reuses the proposal-duplication copy keys (cms.proposals.proposal-duplicated). The Activities menu entry declares disabledByModule: 'MarketingAnalytics', so it disappears for centres with the marketing-analytics module even though the routes still work.

Use cases

Why someone opens this (4)

  • Finding last year’s Christmas activity and duplicating it as the starting point for this year.
  • Reviewing which activities are currently running across the centre.
  • Opening the report of a finished activity to report results to the centre’s owners.
  • Preventing a colleague from editing a closed activity whose results are already reported.

Path map

flowchart LR
    F(["Activity list and duplication"]):::feat
    F --> H1["Activity duplicated"]:::ok
    F -.-> X1["Duplication fails"]:::bad
    F -.-> X2["Edit blocked by status"]:::bad
    F -.-> X3["Delete blocked by status"]:::bad
    F -.-> X4["Report unavailable"]:::bad
    classDef feat fill:#b0432c,stroke:#b0432c,color:#ffffff,font-weight:bold
    classDef ok fill:#e3f1ea,stroke:#0d6b42,color:#0d4a2e
    classDef bad fill:#f7e6e2,stroke:#9a2d1c,color:#6e1f13

Happy paths

Activity duplicated

  1. User finds a past activity and clicks duplicate.
  2. A copy is created and cms.proposals.proposal-duplicated confirms it.
  3. The user opens the copy, adjusts dates and content and saves.

Failure paths

QA checklist

Tick these off while regression-testing this feature. The boxes are plain Markdown, so progress is visible in git diffs.

  • ✅ Activity duplicated
  • ⛔ Duplication fails
  • ⛔ Edit blocked by status
  • ⛔ Delete blocked by status
  • ⛔ Report unavailable

Implementation


Generated from doc/feature-inventory.json · id marketing-campaign-list · commit 276788ca6