From: Raphaël Barrois Date: Fri, 29 Mar 2013 20:50:34 +0000 (+0100) Subject: events: tune models. X-Git-Url: http://git.polytechnique.org/?p=xnet;a=commitdiff_plain;h=0bef2caa32f1c95ae6e5f1a5a5bd21dd0c5038ce events: tune models. --- diff --git a/xnet/events/models.py b/xnet/events/models.py index 5c77a2e..43c171f 100644 --- a/xnet/events/models.py +++ b/xnet/events/models.py @@ -19,13 +19,17 @@ class Event(models.Model): (NOTIFICATION_RECIPIENT_NONE, _(u"personne")), ) - short = models.SlugField(max_length=40, verbose_name=_(u"nom raccourci")) + short = models.SlugField(max_length=40, unique=True, verbose_name=_(u"nom raccourci"), + help_text=_(u"Texte court utilisé dans les URLs.")) main_description = models.OneToOneField('events.EventDescription', null=True, blank=True, 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")) + simple = models.BooleanField(verbose_name=_(u"simple"), + help_text=_(u"Un événement simple a un seul composant. Permet une mise en page plus légère.")) + registration_begin = models.DateTimeField(blank=True, null=True, + verbose_name=_(u"date d'ouverture des inscriptions")) registration_end = models.DateTimeField(null=True, blank=True, verbose_name=_(u"date limite d'inscription")) notification_recipient = models.CharField(max_length=10, choices=NOTIFICATION_RECIPIENT_CHOICES, @@ -33,7 +37,7 @@ class Event(models.Model): show_registered = models.BooleanField(verbose_name=_(u"montrer les inscriptions aux membres")) allow_non_members = models.BooleanField(verbose_name=_(u"autoriser les non-membres")) allow_guests = models.BooleanField(verbose_name=_(u"autoriser les invités")) - registration_limit = models.IntegerField(verbose_name=_(u"limites du nombre d'inscrits")) + registration_limit = models.PositiveIntegerField(verbose_name=_(u"limites du nombre d'inscrits")) start_date = models.DateTimeField(null=True, blank=True, verbose_name=_(u"date de début")) end_date = models.DateTimeField(null=True, blank=True, verbose_name=_(u"date de fin")) @@ -47,11 +51,14 @@ class Event(models.Model): class EventDescription(models.Model): + """A component of an event.""" + 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='descriptions') registration_limit = models.IntegerField(verbose_name=_(u"limites du nombre d'inscrits")) - main = models.BooleanField(verbose_name=_(u"principale")) + main = models.BooleanField(verbose_name=_(u"principale"), + help_text=_(u"S'il s'agit du composant principal de l'événement")) def __unicode__(self): return self.name @@ -59,6 +66,7 @@ class EventDescription(models.Model): class Meta: verbose_name = _(u"description d'événement") verbose_name_plural = _(u"descriptions d'événements") + unique_together = ('event', 'name') class PriceOption(models.Model): @@ -73,6 +81,7 @@ class PriceOption(models.Model): class Meta: verbose_name = _(u"option de paiement") verbose_name_plural = _(u"options de paiement") + unique_together = ('event_description', 'name') class RegistrationWorkflow(xwf_models.Workflow): @@ -94,7 +103,7 @@ class Registration(models.Model): user = models.ForeignKey(accounts_models.Account, verbose_name=_(u"utilisateur enregistré"), related_name='event_registrations') dn_event = models.ForeignKey(EventDescription, verbose_name=_(u"événement associé"), - related_name='registrations') + related_name='registrations', editable=False) option = models.ForeignKey(PriceOption, verbose_name=_(u"options associées"), related_name='registrations') date_registered = models.DateTimeField(verbose_name=_(u"date d'enregistrement")) @@ -106,3 +115,4 @@ class Registration(models.Model): class Meta: verbose_name = _(u"inscription") verbose_name_plural = _(u"inscriptions") + unique_together = ('user', 'option')