As a: community leader or admin,
I want to: duplicate existing events and sessions with a single click,
So that: I can quickly create similar events/sessions without manually re-entering all the details.
ACCEPTANCE CRITERIA
Event Cloning
Given an existing event with all data configured
When: I click the "Duplicate" button on the event
Then: a new event is created with all data copied:
• ✓ Event title = original title + "(Copy 1)"
• ✓ All event metadata (description, dates, times, location, etc.) is copied
• ✓ Custom questions are replicated
• ✓ Email templates are replicated
• ✓ Parent series relationship remains (if event belongs to series)
• ✓ Child objects copied:
• Sessions
• Speakers
EXCEPT:
• ✗ Child objects NOT copied:
• Registrations
• Check-ins
• Analytics/history data
And if: "(Copy 1)" already exists, it becomes "(Copy 2)", "(Copy 3)", etc.
---
Session Cloning
Given: an existing session with all data configured
When: I click the "Duplicate" button on the session
Then: a new session is created with all data copied:
• ✓ Session title = original title + "(Copy 1)"
• ✓ All session metadata (description, start/end times, room, tags, etc.) is copied
• ✓ Custom questions are replicated
• ✓ Email templates are replicated
• ✓ Parent event relationship remains (if sessions belongs to event)
• ✓ Child objects copied:
• Speakers
EXCEPT:
• ✗ Child objects NOT copied:
• Registrations
• Check-ins
• Attendance/engagement data
And if: "(Copy 1)" already exists, it becomes "(Copy 2)", "(Copy 3)", etc.
---
🎨 UI Requirements
Event List/Detail View
•⁠ ⁠Add "Duplicate" button next to existing event actions (Save, Delete)
•⁠ ⁠Add "Duplicate" button next to existing session actions (Save, Delete)
Confirmation Dialog
Modal appears on click with:
Duplicate "[Event Name]"?
A new copy will be created with:
• Title: "[Event Name] (Copy 1)"
• All configuration copied
• Speakers, sessions, registrations NOT copied
[CANCEL] [DUPLICATE]
Success Feedback
•⁠ ⁠Toast notification: "Event duplicated successfully" / "Session duplicated successfully"
•⁠ ⁠Redirect to newly created event/session detail view
Edge Cases to Handle
•⁠ ⁠Event/series with no parent → Still copyable
•⁠ ⁠Event with complex schedule (multiple sessions) → Event copies, sessions don't
•⁠ ⁠Event with custom question fields → All custom fields copied
•⁠ ⁠Deleted original event → Cloned copy unaffected
•⁠ ⁠Permissions → Only users with "Create" permission can duplicate