discourse/plugins/discourse-calendar/db/migrate
Régis Hanol b4643f7151
FEATURE: Better RSVPs on recurring events (#39892)
For recurring events, members can now choose whether their "Going" RSVP
applies to a single upcoming instance or to every following instance in
the series. Previously, a "Going" RSVP silently persisted forever across
all future recurrences with no way to opt out short of leaving the
event.

The recurring `Going` button is now a dropdown with two options:

- "This event" (default): the RSVP applies only to the next occurrence
and is cleared when the recurrence advances.
- "This event and all following events": the RSVP persists across every
future occurrence until the member changes it.

Non-recurring events are unchanged and still expose a plain `Going`
button.

Implementation:

- New `recurring` boolean column on `discourse_post_event_invitees`,
defaulting to false.
- `Invitee#recurring=` coerces to a strict boolean and a `before_save`
callback enforces that only `going` rows can be recurring, so the
invariant is owned by the model.
- `Event#reset_invitee_notifications` (called on recurrence advance) now
also clears `going` rows that are not marked recurring, restoring the
original pre-regression "reset on each occurrence" behavior as the
default while keeping the opt-in persistent mode intact.
- `CreateInvitee` / `UpdateInvitee` services accept a `recurring` param
threaded through from the controller. The `InviteeSerializer` exposes
`recurring` so the UI can reflect the current selection.
- The participant chip and the trigger button swap between the `check`
and `arrows-rotate` icons depending on the invitee's `recurring` flag.

Ref - t/144138
2026-05-18 10:42:09 +02:00
..
20190724181542_add_on_holiday_index.rb
20200226183018_create_calendar_events.rb
20200310200000_remove_timezone_custom_field.rb
20200327195549_add_topic_custom_field_post_event_date_index.rb
20200409102639_drop_incorrect_future_schema_migrations.rb
20200409102640_create_post_events_table.rb
20200409102641_create_invitees_table.rb
20200409102642_rename_setting_to_discourse_post_event.rb
20200409102643_rename_tables_to_discourse_post_event.rb
20200409120815_rename_topic_custom_field_topic_post_event_starts_at_index.rb
20200409181607_remove_display_invitees.rb
20200729094848_add_url_column_to_event.rb
20200805073343_drop_old_discourse_calendar_tables.rb
20200805133257_add_custom_fields_to_event.rb
20200809154642_create_reminders_table.rb
20200810185432_refactor_reminders.rb
20200810190429_drop_reminders_table.rb
20200812193122_add_recurrence_to_events.rb
20200926144256_add_unique_index_to_topic_event_ends_at_custom_field.rb
20201110225115_create_post_event_dates_table.rb
20201111005205_move_data_to_event_dates.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
20211216124303_add_timezone_to_calendar_events.rb
20220228163400_adds_timezone_to_discourse_post_event_event.rb
20220604200919_create_disabled_holidays.rb
20220613073844_unescape_event_name.rb
20220724130519_fix_post_event_timezones.rb
20221121165352_add_type_field_to_events_reminders.rb
20221223210225_add_minimal_option_to_calendar_event.rb
20231123233308_delete_duplicated_holidays.rb
20231124021939_delete_similar_holidays.rb
20240513140542_add_closed_to_discourse_post_event.rb
20250520042223_add_chat_fields_to_events.rb
20250526154632_add_recurrence_until.rb
20250602114410_add_show_local_time.rb
20250616101944_add_location_to_event.rb
20250616101945_add_description_to_event.rb
20250807042048_dedupe_event_schedules.rb
20250811120000_add_max_attendees_to_events.rb FEATURE: introduce max attendees for events (#34313) 2025-09-01 22:56:19 +02:00
20250819123417_remove_unusused_calendar_site_settings.rb DEV: full calendar v6 (#33737) 2025-08-26 10:35:05 +02:00
20250819123418_remove_include_expired_site_setting.rb FIX: removes support for include_expired param (#34582) 2025-08-28 14:37:45 +02:00
20250919094856_add_distinct_on_optimization_index_to_event_dates.rb PERF: correctly index event dates (#34877) 2025-09-19 17:41:57 +02:00
20251017115448_migrate_deprecated_holiday_region_codes.rb FIX: Job exception: Holidays::InvalidRegion (#35473) 2025-10-17 17:53:53 +02:00
20251205140527_update_event_dates_optimization_index.rb FIX: event not found after being edited to earlier date (#36481) 2025-12-08 17:41:46 +01:00
20260311021412_add_all_day_to_discourse_post_event_events.rb FEAT: add all_day option to calendar events (#38511) 2026-03-18 11:29:30 -05:00
20260311161955_add_topic_custom_field_all_day_index.rb FEAT: add all_day option to calendar events (#38511) 2026-03-18 11:29:30 -05:00
20260316154328_add_image_upload_id_to_events.rb FEAT: add images to post event events (#38643) 2026-04-13 09:45:06 -05:00
20260511145109_add_recurring_to_discourse_post_event_invitees.rb FEATURE: Better RSVPs on recurring events (#39892) 2026-05-18 10:42:09 +02:00