44 lines
1.6 KiB
Python
44 lines
1.6 KiB
Python
# coding: utf-8
|
|
|
|
from django.db import models
|
|
from django.contrib.auth.models import User
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.db.models.signals import post_save
|
|
|
|
class Spectacle (models.Model):
|
|
title = models.CharField ("Titre", max_length = 300)
|
|
date = models.DateTimeField ("Date & heure")
|
|
location = models.CharField ("Lieu", max_length = 300,
|
|
blank = True, null = True)
|
|
description = models.TextField ("Description", blank = True)
|
|
slots_description = models.TextField ("Description des places", blank = True)
|
|
slots = models.IntegerField ("Places")
|
|
priority = models.IntegerField ("Priorité", default = 1000)
|
|
|
|
class Meta:
|
|
verbose_name = "Spectacle"
|
|
ordering = ("priority", "date","title",)
|
|
|
|
def __repr__ (self):
|
|
return u"[%s]" % self.__unicode__()
|
|
|
|
def __unicode__ (self):
|
|
return u"%s - %s @ %s" % (self.title, self.date, self.location)
|
|
|
|
class Participant (models.Model):
|
|
user = models.ForeignKey(User, unique = True)
|
|
choices = models.ManyToManyField(Spectacle, through = "ChoixSpectacle")
|
|
|
|
def __unicode__ (self):
|
|
return u"%s" % (self.user)
|
|
|
|
class ChoixSpectacle (models.Model):
|
|
participant = models.ForeignKey(Participant)
|
|
spectacle = models.ForeignKey(Spectacle, related_name = "participants")
|
|
priority = models.PositiveIntegerField("Priorité")
|
|
double = models.BooleanField("Deux places<sup>1</sup>")
|
|
autoquit = models.BooleanField("Abandon<sup>2</sup>")
|
|
class Meta:
|
|
ordering = ("priority",)
|
|
#unique_together = (("participant", "spectacle",),)
|
|
verbose_name = "voeu"
|