Fusion BdA

- Les tirages ont un champ `active` pour indiquer si le tirage doit
  être affiché ou considéré comme archivé.
- La page d'accueil n'affiche que les tirages actifs.
- Le formulaire d'inscription ne propose plus que les spectacles du
  tirage concerné.
This commit is contained in:
Martin Pépin 2016-06-06 11:19:27 +02:00
parent 366daf7240
commit 759893f728
4 changed files with 26 additions and 14 deletions

View file

@ -12,6 +12,7 @@ class Tirage(models.Model):
ouverture = models.DateTimeField("Date et heure d'ouverture du tirage") ouverture = models.DateTimeField("Date et heure d'ouverture du tirage")
fermeture = models.DateTimeField("Date et heure de fermerture du tirage") fermeture = models.DateTimeField("Date et heure de fermerture du tirage")
token = models.TextField("Graine du tirage", blank=True) token = models.TextField("Graine du tirage", blank=True)
active = models.BooleanField("Tirage actif", default=True)
def date_no_seconds(self): def date_no_seconds(self):
return self.fermeture.strftime('%d %b %Y %H:%M') return self.fermeture.strftime('%d %b %Y %H:%M')

View file

@ -133,10 +133,16 @@ def inscription(request, tirage_id):
{ "error_title": "C'est fini !", { "error_title": "C'est fini !",
"error_description": u"Tirage au sort dans la journée !", "error_description": u"Tirage au sort dans la journée !",
"choices": choices}) "choices": choices})
BdaFormSet = inlineformset_factory(Participant, def formfield_callback(f, **kwargs):
if f.name == "spectacle":
kwargs['queryset'] = Spectacle.objects.filter(tirage=tirage)
return f.formfield(**kwargs)
BdaFormSet = inlineformset_factory(
Participant,
ChoixSpectacle, ChoixSpectacle,
fields=("spectacle","double_choice","priority"), fields=("spectacle","double_choice","priority"),
formset=BaseBdaFormSet) formset=BaseBdaFormSet,
formfield_callback=formfield_callback)
participant, created = Participant.objects.get_or_create( participant, created = Participant.objects.get_or_create(
user=request.user, tirage=tirage) user=request.user, tirage=tirage)
success = False success = False

View file

@ -24,17 +24,19 @@
{% if user.profile.is_cof %} {% if user.profile.is_cof %}
<h3>BdA</h3> {% if open_tirages %}
<h3>Tirages du BdA</h3>
{% for tirage in open_tirages %}
<ul> <ul>
Premier tirage {{ tirage.title }}
<li><a href="{% url "bda-tirage-inscription" 1 %}">Inscription au premier tirage au sort du BdA</a></li> <li><a href="{% url "bda-tirage-inscription" tirage.id %}">Inscription</a></li>
<li><a href="{% url "bda-etat-places" 1 %}">État des demandes</a> <li><a href="{% url "bda-etat-places" tirage.id %}">État des demandes</a>
<li><a href="{% url "bda-places-attribuees" 1 %}">Mes places du premier tirage</a></li> <li><a href="{% url "bda-places-attribuees" tirage.id %}">Mes places</a></li>
<li><a href="{% url "bda-revente" 1 %}">Revendre une place du premier tirage</a></li> <li><a href="{% url "bda-revente" tirage.id %}">Revendre une place</a></li>
<br> <br>
</ul> </ul>
{% endfor %}
{% endif %}
{% endif %} {% endif %}
<h3>Divers</h3> <h3>Divers</h3>

View file

@ -20,6 +20,8 @@ from gestioncof.forms import UserProfileForm, EventStatusFilterForm, \
SurveyForm, SurveyStatusFilterForm, RegistrationUserForm, \ SurveyForm, SurveyStatusFilterForm, RegistrationUserForm, \
RegistrationProfileForm, AdminEventForm, EventForm RegistrationProfileForm, AdminEventForm, EventForm
from bda.models import Tirage
import re import re
@login_required @login_required
@ -27,7 +29,8 @@ def home(request):
data = {"surveys": Survey.objects.filter(old=False).all(), data = {"surveys": Survey.objects.filter(old=False).all(),
"events": Event.objects.filter(old=False).all(), "events": Event.objects.filter(old=False).all(),
"open_surveys": Survey.objects.filter(survey_open=True, old=False).all(), "open_surveys": Survey.objects.filter(survey_open=True, old=False).all(),
"open_events": Event.objects.filter(registration_open = True, old = False).all()} "open_events": Event.objects.filter(registration_open=True, old=False).all(),
"open_tirages": Tirage.objects.filter(active=True).all()}
return render(request, "home.html", data) return render(request, "home.html", data)
def login(request): def login(request):