Problem/Motivation
Customers cannot express interest when an opening is full or receive a fair opportunity to claim capacity that becomes available.
Proposed resolution
Add opt-in per-calendar waitlists with party size, queued notifications, expiring capacity holds, private single-use offer links, and leave/decline actions. Claims on priced calendars must continue through Commerce checkout. Expired offers release capacity for another eligible entry.
Remaining tasks
Implement for the next minor release, add automated coverage, and verify the workflow on a local Drupal site.
Test coverage
Cover duplicate joins, invalid input, capacity and party-size eligibility, ordering, concurrent processing, offer expiry, invalid and reused tokens, decline, disabled calendars, anonymous claims, and Commerce payment holds.
Comments
Comment #2
josh.fabeanComment #3
josh.fabeanImplemented and pushed to
3.2.x; available in3.2.x-dev.Verification: full module suite passes with 91 tests and 1,984 assertions, including waitlist ordering, duplicate requests, anonymous access, invalid/reused tokens, capacity locking, expiry, decline, and paid claims. Drupal coding standards and static analysis pass. Run database updates and rebuild caches after updating.
Adding explicit commit links because the initial branch push did not appear in this issue. Marking fixed.