Details
Description
Introduce the concept of participation expiration.
If a given event has a non-zero expiration_time, the participants who have a status of class 'Pending' and who have register_date + expiration_time < now should be moved to the Expired status.
Introduce a cronjob that should take care of this.
This should also fire off an email to the participant that they got canceled; this email should be (B)Cc:ed to civicrm_event.(b)cc_confirm.
When working on this cronjob, also add a cronjob for moving participants from waitlist to the event if the event stops being full.
These participants should be moved in on a first-in-first-out basis, i.e., the ones that got onto the waitlist first should be moved into the event first. Note that if an event has two spaces open, but the first participant on the waitlist is representing a group of three participants, then nobody should be moved and the event should be considered full until at least three spots open up.