Merge branch 'master' into Kerl/mails_rappel

This commit is contained in:
Martin Pépin 2016-07-10 13:19:10 +02:00
commit f6d3106110
28 changed files with 1019 additions and 611 deletions

View file

@ -4,16 +4,17 @@ import calendar
from django.db import models
from django.contrib.auth.models import User
from django.utils.translation import ugettext_lazy as _
from django.template import loader, Context
from django.core import mail
from django.conf import settings
def render_template(template_name, data):
tmpl = loader.get_template(template_name)
ctxt = Context(data)
return tmpl.render(ctxt)
class Tirage(models.Model):
title = models.CharField("Titre", max_length=300)
ouverture = models.DateTimeField("Date et heure d'ouverture du tirage")
@ -26,14 +27,16 @@ class Tirage(models.Model):
def __unicode__(self):
return u"%s - %s" % (self.title, self.date_no_seconds())
class Salle(models.Model):
name = models.CharField("Nom", max_length = 300)
name = models.CharField("Nom", max_length=300)
address = models.TextField("Adresse")
def __unicode__ (self):
def __unicode__(self):
return self.name
class Spectacle(models.Model):
title = models.CharField("Titre", max_length=300)
date = models.DateTimeField("Date & heure")
@ -48,9 +51,9 @@ class Spectacle(models.Model):
class Meta:
verbose_name = "Spectacle"
ordering = ("priority", "date","title",)
ordering = ("priority", "date", "title",)
def __repr__ (self):
def __repr__(self):
return u"[%s]" % self.__unicode__()
def timestamp(self):
@ -59,9 +62,10 @@ class Spectacle(models.Model):
def date_no_seconds(self):
return self.date.strftime('%d %b %Y %H:%M')
def __unicode__ (self):
def __unicode__(self):
return u"%s - %s, %s, %.02f" % (self.title, self.date_no_seconds(),
self.location, self.price)
self.location, self.price)
def send_rappel(self):
# On récupère la liste des participants
members = {}
@ -80,7 +84,8 @@ class Spectacle(models.Model):
mail_body = render_template('mail-rappel.txt', {
'member': member,
'show': self})
mail_tot = mail.EmailMessage(mail_object, mail_body,
mail_tot = mail.EmailMessage(
mail_object, mail_body,
settings.RAPPEL_FROM, [member.email],
[], headers={'Reply-To': settings.RAPPEL_REPLY_TO})
mails_to_send.append(mail_tot)
@ -91,26 +96,28 @@ class Spectacle(models.Model):
return members.values()
PAYMENT_TYPES = (
("cash",u"Cash"),
("cb","CB"),
("cheque",u"Chèque"),
("autre",u"Autre"),
("cash", u"Cash"),
("cb", "CB"),
("cheque", u"Chèque"),
("autre", u"Autre"),
)
class Participant(models.Model):
user = models.ForeignKey(User)
choices = models.ManyToManyField(Spectacle,
through="ChoixSpectacle",
related_name="chosen_by")
through="ChoixSpectacle",
related_name="chosen_by")
attributions = models.ManyToManyField(Spectacle,
through="Attribution",
related_name="attributed_to")
paid = models.BooleanField (u"A payé", default=False)
through="Attribution",
related_name="attributed_to")
paid = models.BooleanField(u"A payé", default=False)
paymenttype = models.CharField(u"Moyen de paiement",
max_length=6, choices=PAYMENT_TYPES, blank=True)
max_length=6, choices=PAYMENT_TYPES,
blank=True)
tirage = models.ForeignKey(Tirage)
def __unicode__ (self):
def __unicode__(self):
return u"%s" % (self.user)
DOUBLE_CHOICES = (
@ -119,12 +126,14 @@ DOUBLE_CHOICES = (
("double", "2 places sinon rien"),
)
class ChoixSpectacle(models.Model):
participant = models.ForeignKey(Participant)
spectacle = models.ForeignKey(Spectacle, related_name="participants")
priority = models.PositiveIntegerField("Priorité")
double_choice = models.CharField("Nombre de places",
default="1", choices=DOUBLE_CHOICES, max_length=10)
default="1", choices=DOUBLE_CHOICES,
max_length=10)
def get_double(self):
return self.double_choice != "1"
@ -140,11 +149,11 @@ class ChoixSpectacle(models.Model):
verbose_name = "voeu"
verbose_name_plural = "voeux"
class Attribution(models.Model):
participant = models.ForeignKey(Participant)
spectacle = models.ForeignKey(Spectacle, related_name="attribues")
given = models.BooleanField(u"Donnée", default=False)
def __unicode__ (self):
def __unicode__(self):
return u"%s -- %s" % (self.participant, self.spectacle)