Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Queue handling #15

Open
nukeador opened this issue Mar 16, 2013 · 10 comments
Open

Queue handling #15

nukeador opened this issue Mar 16, 2013 · 10 comments
Milestone

Comments

@nukeador
Copy link
Member

Since we are organizing more and more events with limited places, we need a way to handle queues.

  • An option to enable queues on events.
  • When an event with places limit reach the limit and has queue on, people will be able to register but with a box telling "Add to the queue" and also new wording when registration is completed, with an email telling that they will be contacted if we get more free places.
  • We also need a custom action from admin to set a registration from "queued" to "waiting confirmation" and send them an email with a link to confirm.

So registrations should/could have three status "queued", "not confirmed", "confirmed"

@nukeador
Copy link
Member Author

nukeador commented May 8, 2013

@willyaranda @stripTM I need some feedback here, I'm not convince about registrations having the 3 status I proposed, because it only applies to registration for events with queue, also confirmed is confusing with the registration confirmed field.

Maybe it's better: "queued", "not queued", "place not accepted", "place accepted"

And we will need one field more to control date when the place expires.

And probably we need more fields on event to control if:

  • We want a queue (already implemented)
  • Queue size
  • Queue max time to accept a place.

@nukeador
Copy link
Member Author

Clarification: "We want a queue" is NOT implemented yet.

@rlr
Copy link
Contributor

rlr commented May 16, 2013

I think there are (at least) 5 states for a user:

  • invited (awaiting confirmation?)
  • confirmed
  • declined
  • expired
  • queued

The queue itself is just sorted by created date. The time to expiration can either be a constant/setting or a field on the event (ah, that is what you suggested with "Queue max time to accept a place").

@nukeador
Copy link
Member Author

So I've implemented the workflow this way:

  • You fill the form: Invited
  • You confirm the email: Confirmed
  • You confirm the email but place limit was reached: Queued
  • You get a spot from the queue and confirm: Confirmed
  • You get a spot from the queue and decline: Declined
  • You get a spot from the queue and don't answer in time: Expired
  • You were confirmed and check-in on the event: Attended

Work in progress in the queues branch

@nukeador
Copy link
Member Author

Initial implementation done.

Pending:

  • A system to decline your registration once confirmed
  • Email people queued that get a place
  • Handle max. answering time via cron or similar and mark as expired.
  • Probably more stuff.

@ghost ghost assigned nukeador May 17, 2013
@nukeador
Copy link
Member Author

Decline ability implemented in 07ced58

@nukeador
Copy link
Member Author

Email people queued that get a place done in 18da17f

Bug there is a bug, if a place is released in the meantime a record is pending confirmation, there is a free place if you register from the site.

We need a way to close registrations if max places is reached in any moment and stay closed.

@nukeador
Copy link
Member Author

Bug fixed in c28d6d5

If an event has pending registrations, that means that it shouldn't have freePlaces so is now set to 0.

@nukeador
Copy link
Member Author

Pending: Handle max. answering time via cron or similar and mark as expired.

@nukeador
Copy link
Member Author

https://github.com/jsocol/django-cronjobs for scheduling.

We'll need an extra datatime field for registrations to know when the place was released and do the maths.

@nukeador nukeador removed their assignment Apr 23, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants