X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=xnet%2Fevents%2Fmodels.py;h=a5a735da062f01ef6df31aec0637cb9e7b227081;hb=93adc7d4e7bf341316ed0274cea6adec7c2b0766;hp=f61cc12e6acad1602f531804cb7d5c952dafab3b;hpb=74215aac28d59ba66b4772ad3fe80377c711862b;p=xnet diff --git a/xnet/events/models.py b/xnet/events/models.py index f61cc12..a5a735d 100644 --- a/xnet/events/models.py +++ b/xnet/events/models.py @@ -1,6 +1,9 @@ # -*- coding: utf-8 -*- from django.db import models from django.utils.translation import ugettext_lazy as _ + +from django_xworkflows import models as xwf_models + import xnet.accounts.models as accounts_models class Event(models.Model): @@ -18,9 +21,10 @@ class Event(models.Model): short = models.SlugField(max_length=40, verbose_name=_(u"nom raccourci")) main_description = models.OneToOneField('events.EventDescription', null=True, blank=True, - verbose_name=_(u"description principale"), related_name=_(u"+")) + verbose_name=_(u"description principale"), related_name='+') + group = models.ForeignKey(accounts_models.XGroup, verbose_name=_(u"groupe"), related_name='events') + creator = models.ForeignKey(accounts_models.Account, verbose_name=_(u"créateur"), related_name='created_events') simple = models.BooleanField(verbose_name=_(u"simple")) - creator = models.ForeignKey(accounts_models.Account, verbose_name=_(u"créateur"), related_name=_(u"created_events")) registration_end = models.DateTimeField(null=True, blank=True, verbose_name=_(u"date limite d'inscription")) @@ -45,7 +49,7 @@ class Event(models.Model): class EventDescription(models.Model): name = models.CharField(max_length=100, verbose_name=_(u"nom")) description = models.CharField(max_length=1000, verbose_name=_(u"description")) - event = models.ForeignKey(Event, verbose_name=_(u"événement parent"), related_name=_(u"descriptions")) + event = models.ForeignKey(Event, verbose_name=_(u"événement parent"), related_name='descriptions') registration_limit = models.IntegerField(verbose_name=_(u"limites du nombre d'inscrits")) main = models.BooleanField(verbose_name=_(u"principale")) @@ -61,7 +65,7 @@ class PriceOption(models.Model): name = models.CharField(max_length=100, verbose_name=_(u"nom")) amount = models.IntegerField(verbose_name=_(u"montant (centimes)")) event_description = models.ForeignKey(EventDescription, verbose_name=_(u"description associée"), - related_name=_(u"price_options")) + related_name='price_options') def __unicode__(self): return self.name @@ -71,30 +75,35 @@ class PriceOption(models.Model): verbose_name_plural = _(u"options de paiement") -class Registration(models.Model): - STATUS_PENDING = 'pending' - STATUS_ACCEPTED = 'accepted' - STATUS_CANCELLED = 'cancelled' - - STATUS_CHOICES = ( - (STATUS_PENDING, _(u"en attente")), - (STATUS_ACCEPTED, _(u"accepté")), - (STATUS_CANCELLED, _(u"annulé")), +class RegistrationWorkflow(xwf_models.Workflow): + states = ( + ('pending', u"En attente"), + ('accepted', u"Accepté"), + ('cancelled', u"Annulé"), ) + transitions = ( + ('accept', ['pending'], 'accepted'), + ('cancel', ['pending', 'accepted'], 'cancelled'), + ) + initial_state = 'pending' + + log_model = '' # We don't want logs + +class Registration(models.Model): user = models.ForeignKey(accounts_models.Account, verbose_name=_(u"utilisateur enregistré"), - related_name=_(u"event_registrations")) + related_name='event_registrations') dn_event = models.ForeignKey(EventDescription, verbose_name=_(u"événement associé"), - related_name=_(u"registrations")) + related_name='registrations') option = models.ForeignKey(PriceOption, verbose_name=_(u"options associées"), - related_name=_(u"registrations")) + related_name='registrations') date_registered = models.DateTimeField(verbose_name=_(u"date d'enregistrement")) - status = models.CharField(max_length=10, choices=STATUS_CHOICES, verbose_name=_(u"statut")) + state = xwf_models.StateField(RegistrationWorkflow, verbose_name=u"état") def __unicode__(self): return "%s, %s, %s".format(unicode(user), unicode(event), unicode(option)) class Meta: - verbose_name = _(u"option de paiement") - verbose_name_plural = _(u"options de paiement") + verbose_name = _(u"inscription") + verbose_name_plural = _(u"inscriptions")