[Feature] Bulk activate and deactivate all campaign recipients #68

Closed
opened 2026-07-14 20:08:41 +02:00 by zemion · 1 comment
Owner

Problem / User Need

Campaign operators need a bulk action to activate or deactivate all recipients in the recipient list.

Acceptance Criteria

  • Recipients can be activated in bulk.
  • Recipients can be deactivated in bulk.
  • The UI clearly shows how many recipients will be affected before applying the action.
  • Bulk changes update validation/review state and are reflected in audit/protocol output where relevant.
## Problem / User Need Campaign operators need a bulk action to activate or deactivate all recipients in the recipient list. ## Acceptance Criteria - Recipients can be activated in bulk. - Recipients can be deactivated in bulk. - The UI clearly shows how many recipients will be affected before applying the action. - Bulk changes update validation/review state and are reflected in audit/protocol output where relevant.
Author
Owner

Codex State: done

Summary

  • Added counted activate-all and deactivate-all actions to Recipient data, each with explicit confirmation and no implicit save.
  • The bulk change stays in the local draft; the existing versioned save path records it and invalidates stale validation, build, and review evidence.

Changed Files

  • webui/src/features/campaigns/RecipientDataPage.tsx
  • webui/src/i18n/generatedTranslations.ts
  • docs/CAMPAIGN_HANDBOOK.md
  • src/govoplan_campaign/backend/manifest.py

Verification

  • Campaign lifecycle UI structural contract passed
  • Full-product WebUI TypeScript build and bundle budget passed
  • Manifest registry check passed: 65/65
## Codex State: done ### Summary - Added counted activate-all and deactivate-all actions to Recipient data, each with explicit confirmation and no implicit save. - The bulk change stays in the local draft; the existing versioned save path records it and invalidates stale validation, build, and review evidence. ### Changed Files - `webui/src/features/campaigns/RecipientDataPage.tsx` - `webui/src/i18n/generatedTranslations.ts` - `docs/CAMPAIGN_HANDBOOK.md` - `src/govoplan_campaign/backend/manifest.py` ### Verification - `Campaign lifecycle UI structural contract passed` - `Full-product WebUI TypeScript build and bundle budget passed` - `Manifest registry check passed: 65/65`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-campaign#68