From 955bba06c329a632510dfc6ced1154fec324a0af Mon Sep 17 00:00:00 2001 From: Morgan Roderick Date: Mon, 12 Oct 2026 13:52:30 +0200 Subject: [PATCH] docs(admin): explain RSVP close-time and waiting-list behaviour The RSVP Timing hint still said "Leave blank to handle manually", which was only true before RSVPs started closing on their own 3.5 hours before a workshop (#2901). Organisers now read what actually happens behind two collapsed sections on the workshop form: what stops at the close time, what still moves between close and the 3.5-hour freeze, and how dates pre-fill when the start time changes. The admin invitation management page gets a note that removing an attendee offers their seat to the top waiting-list member until the workshop starts, and that the close times do not limit the page. --- .../admin/workshops/_invitation_management.html.haml | 2 ++ app/views/admin/workshops/_shared_form.html.haml | 10 ++++++++++ config/locales/en.yml | 10 +++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/views/admin/workshops/_invitation_management.html.haml b/app/views/admin/workshops/_invitation_management.html.haml index 602f8a562..371bfa3d0 100644 --- a/app/views/admin/workshops/_invitation_management.html.haml +++ b/app/views/admin/workshops/_invitation_management.html.haml @@ -14,6 +14,8 @@ = link_to 'RSVP a member', admin_workshop_rsvp_path(@workshop), class: 'btn btn-primary mb-4' +%p.small.text-muted= t('admin.workshop.invitation_management.removal_promotes_waitlist') + .row .col-12.col-md-6 %h4 diff --git a/app/views/admin/workshops/_shared_form.html.haml b/app/views/admin/workshops/_shared_form.html.haml index 86729801d..e65e46a59 100644 --- a/app/views/admin/workshops/_shared_form.html.haml +++ b/app/views/admin/workshops/_shared_form.html.haml @@ -25,6 +25,16 @@ .card-body %h6.card-title RSVP Timing %p.small.text-muted= t('admin.workshop.form.rsvp_details') + %details.mt-2 + %summary.text-muted.small= t('admin.workshop.form.rsvp_close_summary') + .text-muted.small + %p.mb-1= t('admin.workshop.form.rsvp_close_after') + %p.mb-1= t('admin.workshop.form.rsvp_close_cancel') + %p.mb-1= t('admin.workshop.form.rsvp_close_waitlist') + %details.mt-2 + %summary.text-muted.small= t('admin.workshop.form.rsvp_close_prefill_summary') + .text-muted.small + %p.mb-1= t('admin.workshop.form.rsvp_close_prefill') .row .col-12.col-md-6 = f.input :rsvp_open_local_date, label: 'Open date', input_html: { value: @workshop.rsvp_open_local_date.presence || @workshop.rsvp_opens_at.try(:strftime, '%Y-%m-%d'), type: :date } diff --git a/config/locales/en.yml b/config/locales/en.yml index 4983dacd9..72dd30671 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -735,7 +735,15 @@ en: failure: "Workshop cannot be deleted. This is because it has invitees and/or workshop information is on the website for a while long enough that it cannot be deleted." form: virtual_info: To create a virtual workshop you must check the box and fill in the below fields. The slack channel will be available on the invitation page for anyone who successfuly RSVPs. - rsvp_details: Set a date and time (in the chapter's timezone) for RSVPs to open and close automatically. Leave blank to handle manually. + rsvp_details: Set a date and time (in the chapter's timezone) for RSVPs to open and close. Leave the close fields blank and RSVPs close 3.5 hours before the workshop starts. + rsvp_close_summary: What happens around the close time + rsvp_close_after: New RSVPs stop once the close time passes, or 3.5 hours before the start if the close fields are blank. + rsvp_close_cancel: Members with a seat can still cancel until 3.5 hours before the start, even after RSVPs have closed. A cancelled seat goes to the first person on the waiting list for the same role, who is confirmed and emailed automatically. + rsvp_close_waitlist: Members can join or leave the waiting list only until the close time, or until 3.5 hours before the start, whichever is earlier. The waiting list handed to security is fixed from that point. A member who cancels keeps their name on that list but is never promoted again; members who already hold a seat are also skipped. + rsvp_close_prefill_summary: Why the close fields changed + rsvp_close_prefill: Changing Date or Begins at sets close fields that are empty, or that this form filled in itself earlier, to 3.5 hours before the new start. Values you type, or that are saved with the workshop, are never overwritten. + invitation_management: + removal_promotes_waitlist: If you remove an attendee from this page while the workshop has not started, their seat is automatically given to the top waiting-list member for the same role, who is confirmed and emailed. You can add and remove members here regardless of the RSVP close times. not_invitable: "The workshop is not invitable" virtual: details: