Problem/Motivation
There's a similar issue to
π
Registration edit form hides Spaces field if unlimited event capacity or unlimited spaces allowed per registration
Fixed
with the "spaces" field disappearing when the main capacity is reached.
Waitlisted reservations do not show the spaces field at all.
For one of our client's events, they are registering families for a banquet, usually 1 or 2 people (we have a separate field for children which does not count towards their capacity).
The event is full, and there's already 20+ registrations on the waitlist -- but all of these are showing 1 space when most of them need 2.
So first of all, they need to be able to select the needed spaces for the waitlist. This might also impact the automatic moving of registrations off the waitlist -- there needs to be enough available space for the next registration...
Steps to reproduce
1. Create an event with limited capacity.
2. Allow unlimited spaces per registration.
3. Create registrations to fill the event.
After that's done, you no longer get the "spaces" field on new waitlist registrations.
Proposed resolution
Make the spaces field always available if the waitlist is available.
If there is a capacity limit (either on regular registrations when there is no waitlist, or when the waitlist limit is reached), always render the "spaces" field (because it's tremendously confusing when it's not there!) but limit the options to fit the available space.
Maybe have two "spaces" values -- one for regular capacity and one for waitlist, for when the event is nearly full?
Remaining tasks
Need to figure out how to handle the waitlist when there are not enough spaces available to move the next person off the waitlist -- hold the space as reserved until an admin presses a button to "handle waitlist" -- e.g. go down the waitlist until finding a registration that doesn't exceed the capacity?
User interface changes
Always show spaces field (if an event allows multiple spaces per registration), and add messages to indicate to users if there is not enough capacity.
API changes
I don't think any are needed.
Data model changes
New configuration options for how to handle the waitlist?