discourse/plugins/discourse-calendar/spec/serializers
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
..
discourse_post_event FEATURE: Better RSVPs on recurring events (#39892) 2026-05-18 10:42:09 +02:00
post_serializer_spec.rb DEV: Clean up scope resolution operators in plugins (#34979) 2025-09-30 14:36:34 +02:00
topic_list_item_serializer_spec.rb FEAT: add all_day option to calendar events (#38511) 2026-03-18 11:29:30 -05:00
topic_view_serializer_spec.rb FEAT: add all_day option to calendar events (#38511) 2026-03-18 11:29:30 -05:00
user_serializer_spec.rb DEV: Don't use fab! for non-ActiveRecord model objects (#39272) 2026-04-15 00:52:34 +02:00