[UPDATE] Event Attendance

Ronin Storm

Administrator
Staff member
Trying to get myself writing code but today it all seems really hard. So I figured I'd try something simpler instead: tweaking the Event Attendance functionality.

There's various things I want to do with the system. I'll update this post through today and post when I'm done (at least for now). Just be cautious when posting events today until I've declared "done".

Changes made:

  • Users can now enroll with an event until the event ends rather than being prevented from signing on when the event starts.
  • Users can mark that they can't attend an event.
  • Users can mark that their attendance is tentative, pending confirmation.
  • Event creator can disallow tentative enrolment.
  • Event creator can specific number of people who can enroll.
  • Event creator can move a user from standby to attending or vice versa (probably bypassing event maximum attendance).
  • Event creator can set an event to have open enrolment then confirm accepted attendees.

Changes upcoming:

  • Event creator can select which usergroups can enroll. Users not in the target group(s) can see the event and the attendance but not enroll.
  • Event creator can specify whether to bar further enrolment after maximum or whether to create a separate "standby" list containing the overflow people.

There's no particular priority in that "upcoming" list. I'll just do whatever seems easiest / most fun to start with and then pick at the harder / most requested stuff later.

[edit]Updated... see follow-on post.[/edit]
 
E

elDiablo

Guest
That's looking like a pretty damn hot list of stuff to add! I like the "stand-by" list and "I can't attend" ideas. Very useful for clan games, and the likes!
 

Ronin Storm

Administrator
Staff member
I've completed the changes I intend to make for the moment. Should all be safe, but as the changes are extensive they should be considered to be in beta. If serious problems are discovered in the system then I will roll back to the copy of the code I held prior to the major changes.

What's New?

The aim of these changes have been to beef up our events system, in particular by helping event organisers, well, organise the rosters for their events.

Previously, an event could be marked as accepting enrolment and then users could mark themselves as "will be attending". Any number of users could do so. They could remove themselves at any time. If they removed themselves from the list there was no indication they'd ever joined the event, nor even seen the event at all...

So, enter the upgrade.

When creating or editting an event:

  • By default the "Allow users to specify that they will be attending this event" is ticked, meaning that events allow enrolment by default.
  • The event creator can elect to "Allow users to specify that they might attend this event".
  • The event creator can elect to "Queue users who wish to attend 'on standby' awaiting approval".
  • The event creator can set a "Maximum number of users who may attend this event", where 0 is used to mean no limit.

When enrolling with an event:

  • A user can click "I want to attend".
    • If the event is open and has spaces available they will enter the "Will be attending" list.
    • If the event is set for queuing or has no spaces available they will enter the "On standby" list.
  • Once a user has enrolled, in any list, they can click "Sorry, I cannot attend". The user will be moved to the "Unable to attend" list. Note that once enrolled they can never remove themselves completely from the event listing as, at minimum, they appear in the "unable to attend" list.
  • If the creator has allowed "might attend", a user can elect to click "Hmm, I might attend". They will be moved from whatever list they are in to the "Maybe attending" list.

The creator of an event and (I believe) any calendar moderator can:

  • For users on standby, click "Accept" to move them to the "will be attending" list.
  • For users attending, click "Remove" to move them to the "on standby" list.

Broadly, I intend that the "will be attending" to be an actual list of people who will be participating in that event, including reserves. People who are in the "on standby" list should consider themselves not yet included in the event. "Maybe attending" and "unable to attend" are to help event organisers know that people have seen an event and that they might or will not be able to get involved -- in a sense, they act like the "don't know, don't care" vote in a poll as a way to let users say they've seen it.

Each name in the list carries a date and time with it. That date and time is set each time the user changes state, even if that state change is done by Accept/Remove.

Additionally, each list is ordered in a first to join is first in the list, but changing lists looses you your place in that list. If you're on standby, don't idly click the "unable to attend" as the order in the list could, theoretically, be used to decide who gets to play and who doesn't (first come, first served?).

What's Next?

I'm going to leave this system as-is for a bit, pending feedback. Give it a whirl and see what you think. I'd love to know if you find it useful, confusing, whatever... :)
 

Ronin Storm

Administrator
Staff member
Some other thoughts:

The new system is totally backwards compatible with the old system, and old events can be editted to use the new functionality immediately. This strikes me as particularly useful to Twisto and his 5v5 games that have 9 people signed up.

Calendar Moderators

If you need help with moderating your event, either contact a Super Moderator, Moderator+ or one of the Calendar Moderators, who are:

  • Big D
  • Macca
  • pHatBambi

For future development:

  • Locking enrolment down to specific usergroups -- e.g. a BF2 clan match only for BF2 clan members.
  • Automatic creation of a discussion thread in a specified forum (that you have permissions for) on creation of an event, adding links both ways in each.
  • Summary of event above thread that it links to for discussion in a similar way to one attaches a poll to a thread.
 

Ronin Storm

Administrator
Staff member
Various bug fixes made. All of the following are resolved:

  • There is no way to say that you are unable to attend until you have said that you are going to attend. (thanks elDiablo)
  • The "allow late enrolment" setting in the Admin CP was being ignore.
    • Now anyone can enrol with an event up to its start date.
    • If "allow late enrolment" is set, anyone can continue to enrol until the event ends.
    • After the event has ended, no further enrolment is possible.
  • Regardless of the setting of "allow late enrolment" the owner and calendar Mods can still "accept" and "remove" people to/from the "attending" list until the event has ended, where further changes are then locked. This should allow last minute changes to rosters despite the event having started.
  • Improved page refresh protection so that actions aren't repeated just by hitting F5. Should also reduce database impact as nothing then gets written when I know no change has been made.

Currently, the Admin CP is set to allow late enrolment. I may push this setting into individual events if there is a demand for that.

Also, to enable debugging, added:

  • Debug mode option in Admin CP.
  • When debugging is enabled, the owner and calendar Mods can see the "delete" option next to each user.
  • A deleted user is removed from all lists (though they should only ever be in one) in this event.

This debug functionality should help cleaning up. Debugging, when enabled, is available on all events, past and future, regardless of end times.
 

Ronin Storm

Administrator
Staff member
Ah yes, I forgot to mention another feature I dropped in...

Queue jumping prevention

In an event where a limited number of people can join, once the maximum number allowed have joined all new people go into the standby queue.

Once even one person is in the standby queue the event automatically switches itself to require authorisation from the owner or a Mod.

This is because the standby queue is ordered, first come first serve. If, say, someone in the attending list drops out, the next person up should theoretically be the first person in the standby queue. By forcing all new signups into the standby queue, this allows the event organiser to choose who steps up to fill the place that was vacated, rather than the next wannabe attendee jumping the queue ahead of the standby list.

Nifty, yes? :)
 

Ronin Storm

Administrator
Staff member
Well today's testing seems to have gone ahead without any further hiccups. Thank you to everyone who gave it a moment to press the buttons and help me out. :)

This functionality is still in beta, clearly, but I'm happier that it is both stable and fit-for-purpose now.

So, now all I need is to get Twisto to use it in anger for his 5v5 games (yes, even the ones that are in place now). :)
 
Top