events - update the model
[xnet] / xnet / events / models.py
index 04c7d6a..f61cc12 100644 (file)
@@ -17,20 +17,26 @@ 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"+"))
     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_date = models.DateTimeField(null=True, blank=True,
+    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,
             verbose_name=_(u"destinataire(s) des notifications"))
     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"))
-    registered_limit = models.PositiveIntegerField(verbose_name=_(u"limites du nombre d'inscrits"))
+    registration_limit = models.IntegerField(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"))
 
+    def __unicode__(self):
+        return self.short
+
     class Meta:
         verbose_name = _(u"événement")
         verbose_name_plural = _(u"événements")
@@ -39,20 +45,26 @@ 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"+"))
-    registered_limit = models.PositiveIntegerField(verbose_name=_(u"limites du nombre d'inscrits"))
+    event = models.ForeignKey(Event, verbose_name=_(u"événement parent"), related_name=_(u"descriptions"))
+    registration_limit = models.IntegerField(verbose_name=_(u"limites du nombre d'inscrits"))
     main = models.BooleanField(verbose_name=_(u"principale"))
 
+    def __unicode__(self):
+        return self.name
+
     class Meta:
         verbose_name = _(u"description d'événement")
         verbose_name_plural = _(u"descriptions d'événements")
 
 
-class PaymentOption(models.Model):
+class PriceOption(models.Model):
     name = models.CharField(max_length=100, verbose_name=_(u"nom"))
-    amount = models.FloatField(verbose_name=_(u"montant"))
+    amount = models.IntegerField(verbose_name=_(u"montant (centimes)"))
     event_description = models.ForeignKey(EventDescription, verbose_name=_(u"description associée"),
-            related_name=_(u"+"))
+            related_name=_(u"price_options"))
+
+    def __unicode__(self):
+        return self.name
 
     class Meta:
         verbose_name = _(u"option de paiement")
@@ -71,11 +83,18 @@ class Registration(models.Model):
     )
 
     user = models.ForeignKey(accounts_models.Account, verbose_name=_(u"utilisateur enregistré"),
-            related_name=_(u"+"))
-    event = models.ForeignKey(EventDescription, verbose_name=_(u"événement associé"),
-            related_name=_(u"+"))
-    options = models.ForeignKey(PaymentOption, verbose_name=_(u"options associées"),
-            related_name=_(u"+"))
+            related_name=_(u"event_registrations"))
+    dn_event = models.ForeignKey(EventDescription, verbose_name=_(u"événement associé"),
+            related_name=_(u"registrations"))
+    option = models.ForeignKey(PriceOption, verbose_name=_(u"options associées"),
+            related_name=_(u"registrations"))
+    date_registered = models.DateTimeField(verbose_name=_(u"date d'enregistrement"))
     status = models.CharField(max_length=10, choices=STATUS_CHOICES, verbose_name=_(u"statut"))
 
+    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")