From ba2d90d906e7eb510764b4bac8d61f3d250f196b Mon Sep 17 00:00:00 2001 From: Basile Clement Date: Sat, 5 Nov 2016 20:04:25 +0100 Subject: [PATCH] [bda-revente] Envoie un mails aux perdants d'un tirage de revente --- bda/models.py | 64 +++++++++++++++++---------- bda/templates/mail-revente-loser.txt | 9 ++++ bda/templates/mail-revente-seller.txt | 7 +++ bda/templates/mail-revente-winner.txt | 7 +++ requirements.txt | 2 +- 5 files changed, 65 insertions(+), 24 deletions(-) create mode 100644 bda/templates/mail-revente-loser.txt create mode 100644 bda/templates/mail-revente-seller.txt create mode 100644 bda/templates/mail-revente-winner.txt diff --git a/bda/models.py b/bda/models.py index 08f17bbe..6fb22189 100644 --- a/bda/models.py +++ b/bda/models.py @@ -320,33 +320,51 @@ class SpectacleRevente(models.Model): self.save() def tirage(self): - inscrits = self.answered_mail + inscrits = list(self.answered_mail.all()) spectacle = self.attribution.spectacle seller = self.seller - if inscrits.exists(): - winner = random.choice(inscrits.all()) + + if inscrits: + mails = [] + mail_subject = "BdA-Revente : {:s}".format(spectacle.title) + + # Envoie un mail au gagnant et au vendeur + winner = random.choice(inscrits) self.soldTo = winner - mail_buyer = """Bonjour, + context = { + 'acheteur': winner.user, + 'vendeur': seller.user, + 'spectacle': spectacle, + } + mails.append(mail.EmailMessage( + mail_subject, loader.render_to_string('mail-revente-winner.txt', context), + from_email=settings.MAIL_DATA['revente']['FROM'], + to=[winner.user.email], + reply_to=[seller.user.email], + )) + mails.append(mail.EmailMessage( + mail_subject, loader.render_to_string('mail-revente-seller.txt', context), + from_email=settings.MAIL_DATA['revente']['FROM'], + to=[seller.user.email], + reply_to=[winner.user.email], + )) -Tu as été tiré-e au sort pour racheter une place pour %s le %s (%s) à %0.02f€. -Tu peux contacter le/la vendeur-se à l'adresse %s. + # Envoie un mail aux perdants + for inscrit in inscrits: + if inscrit == winner: + continue -Chaleureusement, -Le BdA""" % (spectacle.title, spectacle.date_no_seconds(), - spectacle.location, spectacle.price, seller.user.email) - - mail.send_mail("BdA-Revente : %s" % spectacle.title, - mail_buyer, "bda@ens.fr", [winner.user.email], - fail_silently=False) - mail_seller = """Bonjour, -La personne tirée au sort pour racheter ta place pour %s est %s. -Tu peux le/la contacter à l'adresse %s. - -Chaleureusement, -Le BdA""" % (spectacle.title, winner.user.get_full_name(), winner.user.email) - - mail.send_mail("BdA-Revente : %s" % spectacle.title, - mail_seller, "bda@ens.fr", [seller.user.email], - fail_silently=False) + mail_body = loader.render_to_string('mail-revente-loser.txt', { + 'acheteur': inscrit.user, + 'vendeur': seller.user, + 'spectacle': spectacle, + }) + mails.append(mail.EmailMessage( + mail_subject, mail_body, + from_email=settings.MAIL_DATA['revente']['FROM'], + to=[inscrit.user.email], + reply_to=[settings.MAIL_DATA['revente']['REPLYTO']], + )) + mail.get_connection().send_messages(mails) self.tirage_done = True self.save() diff --git a/bda/templates/mail-revente-loser.txt b/bda/templates/mail-revente-loser.txt new file mode 100644 index 00000000..6b50944d --- /dev/null +++ b/bda/templates/mail-revente-loser.txt @@ -0,0 +1,9 @@ +Bonjour {{ acheteur.first_name }}, + +Tu t'étais inscrit-e pour la revente de la place de {{ vendeur.get_full_name }} +pour {{ spectacle.title }}. +Malheureusement, une autre personne a été tirée au sort pour racheter la place. +Tu pourras certainement retenter ta chance pour une autre revente ! + +À très bientôt, +Le Bureau des Arts diff --git a/bda/templates/mail-revente-seller.txt b/bda/templates/mail-revente-seller.txt new file mode 100644 index 00000000..ec99b98b --- /dev/null +++ b/bda/templates/mail-revente-seller.txt @@ -0,0 +1,7 @@ +Bonjour {{ vendeur.first_name }}, + +La personne tirée au sort pour racheter ta place pour {{ spectacle.title }} est {{ acheteur.get_full_name }}. +Tu peux le/la contacter à l'adresse {{ acheteur.email }}, ou en répondant à ce mail. + +Chaleureusement, +Le BdA diff --git a/bda/templates/mail-revente-winner.txt b/bda/templates/mail-revente-winner.txt new file mode 100644 index 00000000..8ca7236a --- /dev/null +++ b/bda/templates/mail-revente-winner.txt @@ -0,0 +1,7 @@ +Bonjour {{ acheteur.first_name }}, + +Tu as été tiré-e au sort pour racheter une place pour {{ spectacle.title }} le {{ spectacle.date_no_seconds }} ({{ spectacle.location }}) à {{ spectacle.price|floatformat:2 }}€. +Tu peux contacter le/la vendeur-se à l'adresse {{ vendeur.email }}, ou en répondant à ce mail. + +Chaleureusement, +Le BdA diff --git a/requirements.txt b/requirements.txt index 2d1109eb..5fffab61 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,5 @@ configparser==3.5.0 -Django==1.8 +Django==1.8.* django-autocomplete-light==2.3.3 django-autoslug==1.9.3 git+https://github.com/xapantu/django-cas-ng.git#egg=django-cas-ng