Merge branch 'master' into Kerl/fix_32_do_tirage
This commit is contained in:
commit
87da29ee59
12 changed files with 246 additions and 83 deletions
|
@ -4,7 +4,16 @@ 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
|
||||
from django.utils import timezone
|
||||
|
||||
|
||||
def render_template(template_name, data):
|
||||
tmpl = loader.get_template(template_name)
|
||||
ctxt = Context(data)
|
||||
return tmpl.render(ctxt)
|
||||
|
||||
|
||||
class Tirage(models.Model):
|
||||
|
@ -41,6 +50,9 @@ class Spectacle(models.Model):
|
|||
slots = models.IntegerField("Places")
|
||||
priority = models.IntegerField("Priorité", default=1000)
|
||||
tirage = models.ForeignKey(Tirage)
|
||||
listing = models.BooleanField("Les places sont sur listing")
|
||||
rappel_sent = models.DateTimeField("Mail de rappel envoyé", blank=True,
|
||||
null=True)
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Spectacle"
|
||||
|
@ -59,6 +71,38 @@ class Spectacle(models.Model):
|
|||
return u"%s - %s, %s, %.02f€" % (self.title, self.date_no_seconds(),
|
||||
self.location, self.price)
|
||||
|
||||
def send_rappel(self):
|
||||
# On récupère la liste des participants
|
||||
members = {}
|
||||
for attr in Attribution.objects.filter(spectacle=self).all():
|
||||
member = attr.participant.user
|
||||
if member.id in members:
|
||||
members[member.id].nb_attr = 2
|
||||
else:
|
||||
member.nb_attr = 1
|
||||
members[member.id] = member
|
||||
# On écrit un mail personnalisé à chaque participant
|
||||
mails_to_send = []
|
||||
mail_object = "%s - %s - %s" % (self.title, self.date_no_seconds(),
|
||||
self.location)
|
||||
for member in members.values():
|
||||
mail_body = render_template('mail-rappel.txt', {
|
||||
'member': member,
|
||||
'show': self})
|
||||
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)
|
||||
# On envoie les mails
|
||||
connection = mail.get_connection()
|
||||
connection.send_messages(mails_to_send)
|
||||
# On enregistre le fait que l'envoi a bien eu lieu
|
||||
self.rappel_sent = timezone.now()
|
||||
self.save()
|
||||
# On renvoie la liste des destinataires
|
||||
return members.values()
|
||||
|
||||
PAYMENT_TYPES = (
|
||||
("cash", u"Cash"),
|
||||
("cb", "CB"),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue