From 1dad85882b7ce5b5b4ab20e32a3625e6fb27bb5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Fri, 30 Sep 2016 00:35:51 +0200 Subject: [PATCH 1/6] Ajoute le BdA dans les destinataires des rappels MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Modifie légérement la façon dont est généré le mail au passage --- bda/models.py | 13 ++++++++----- bda/templates/mail-rappel.txt | 8 ++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/bda/models.py b/bda/models.py index 1074e58b..4b2acdd3 100644 --- a/bda/models.py +++ b/bda/models.py @@ -105,21 +105,24 @@ class Spectacle(models.Model): for attr in Attribution.objects.filter(spectacle=self).all(): member = attr.participant.user if member.id in members: - members[member.id].nb_attr = 2 + members[member.id][1] = 2 else: - member.nb_attr = 1 - members[member.id] = member + members[member.id] = [member.get_full_name(), 1, member.email] + # Pour le BdA + members[0] = ['BdA', 1, 'bda@ens.fr'] + members[-1] = ['BdA', 2, 'bda@ens.fr'] # 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, + 'name': member[0], + 'nb_attr': member[1], 'show': self}) mail_tot = mail.EmailMessage( mail_object, mail_body, - settings.RAPPEL_FROM, [member.email], + settings.RAPPEL_FROM, [member[2]], [], headers={'Reply-To': settings.RAPPEL_REPLY_TO}) mails_to_send.append(mail_tot) # On envoie les mails diff --git a/bda/templates/mail-rappel.txt b/bda/templates/mail-rappel.txt index 5152b1db..4759a849 100644 --- a/bda/templates/mail-rappel.txt +++ b/bda/templates/mail-rappel.txt @@ -1,14 +1,14 @@ -Bonjour {{ member.get_full_name }}, +Bonjour {{ name }}, -Nous te rappellons que tu as eu la chance d'obtenir {{ member.nb_attr|pluralize:"une place,deux places" }} +Nous te rappellons que tu as eu la chance d'obtenir {{ nb_attr|pluralize:"une place,deux places" }} pour {{ show.title }}, le {{ show.date_no_seconds }} au {{ show.location }}. N'oublie pas de t'y rendre ! -{% if member.nb_attr == 2 %} +{% if nb_attr == 2 %} Tu as obtenu deux places pour ce spectacle. Nous te rappelons que ces places sont strictement réservées aux personnes de moins de 28 ans. {% endif %} {% if show.listing %}Pour ce spectacle, tu as reçu des places sur listing. Il te faudra donc te rendre 15 minutes en avance sur les lieux de la représentation -pour retirer {{ member.nb_attr|pluralize:"ta place,tes places" }}. +pour retirer {{ nb_attr|pluralize:"ta place,tes places" }}. {% else %}Pour assister à ce spectacle, tu dois présenter les billets qui ont été distribués au burô. {% endif %} From 018f493b163b4326897ae4478ca782458997ceca Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Mon, 3 Oct 2016 14:47:13 +0200 Subject: [PATCH 2/6] fix date writing --- bda/management/commands/manage_reventes.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bda/management/commands/manage_reventes.py b/bda/management/commands/manage_reventes.py index f45357b1..5fa3806b 100644 --- a/bda/management/commands/manage_reventes.py +++ b/bda/management/commands/manage_reventes.py @@ -14,7 +14,7 @@ class Command(BaseCommand): def handle(self, *args, **options): now = timezone.now() - self.stdout.write(now) + self.stdout.write(now.__str__()) reventes = SpectacleRevente.objects.all() for revente in reventes: # Check si < 24h From 60a11a8ba470aa4a830a67e26a3d34585b3f7c8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Mon, 3 Oct 2016 16:08:29 +0200 Subject: [PATCH 3/6] Changement mineur dans le mail --- bda/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bda/models.py b/bda/models.py index 4b2acdd3..e45393f1 100644 --- a/bda/models.py +++ b/bda/models.py @@ -107,7 +107,7 @@ class Spectacle(models.Model): if member.id in members: members[member.id][1] = 2 else: - members[member.id] = [member.get_full_name(), 1, member.email] + members[member.id] = [member.first_name, 1, member.email] # Pour le BdA members[0] = ['BdA', 1, 'bda@ens.fr'] members[-1] = ['BdA', 2, 'bda@ens.fr'] From 7fbf0e48091ed19e199bd48a682472acc503d885 Mon Sep 17 00:00:00 2001 From: Ludovic Stephan Date: Mon, 3 Oct 2016 16:47:22 +0200 Subject: [PATCH 4/6] fix manage_reventes --- bda/management/commands/manage_reventes.py | 4 +++- bda/models.py | 4 ++-- bda/templates/mail-revente.txt | 2 +- bda/templates/mail-shotgun.txt | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/bda/management/commands/manage_reventes.py b/bda/management/commands/manage_reventes.py index 5fa3806b..45b9c91a 100644 --- a/bda/management/commands/manage_reventes.py +++ b/bda/management/commands/manage_reventes.py @@ -14,7 +14,6 @@ class Command(BaseCommand): def handle(self, *args, **options): now = timezone.now() - self.stdout.write(now.__str__()) reventes = SpectacleRevente.objects.all() for revente in reventes: # Check si < 24h @@ -22,15 +21,18 @@ class Command(BaseCommand): revente.date + timedelta(days=1)) and \ now >= revente.date + timedelta(minutes=15) and \ not revente.notif_sent: + self.stdout.write(str(now)) revente.mail_shotgun() self.stdout.write("Mail de disponibilité immédiate envoyé") # Check si délai de retrait dépassé elif (now >= revente.date + timedelta(hours=1) and not revente.notif_sent): + self.stdout.write(str(now)) revente.send_notif() self.stdout.write("Mail d'inscription à une revente envoyé") # Check si tirage à faire elif (now >= revente.expiration_time and not revente.tirage_done): + self.stdout.write(str(now)) revente.tirage() self.stdout.write("Tirage effectué, mails envoyés") diff --git a/bda/models.py b/bda/models.py index 1074e58b..085bd548 100644 --- a/bda/models.py +++ b/bda/models.py @@ -269,7 +269,7 @@ class SpectacleRevente(models.Model): for participant in inscrits: mail_body = render_template('mail-revente.txt', { 'user': participant.user, - 'spectacle': self.spectacle, + 'spectacle': self.attribution.spectacle, 'revente': self}) mail_tot = mail.EmailMessage( mail_object, mail_body, @@ -290,7 +290,7 @@ class SpectacleRevente(models.Model): for participant in inscrits: mail_body = render_template('mail-shotgun.txt', { 'user': participant.user, - 'spectacle': self.spectacle, + 'spectacle': self.attribution.spectacle, 'mail': self.attribution.participant.user.email}) mail_tot = mail.EmailMessage( mail_object, mail_body, diff --git a/bda/templates/mail-revente.txt b/bda/templates/mail-revente.txt index adc61eb9..94cab1b1 100644 --- a/bda/templates/mail-revente.txt +++ b/bda/templates/mail-revente.txt @@ -2,7 +2,7 @@ Bonjour {{ user.get_full_name }} Une place pour le spectacle {{ spectacle.title }} ({{spectacle.date_no_seconds}}) a été postée sur BdA-Revente. -Si ce spectacle t'intéresse toujours, merci de nous le signaler en cliquant sur ce lien : {% url "bda-interested-revente" revente.id %}. Dans le cas où plusieurs personnes seraient intéressées, nous procèderons à un tirage au sort le {{revente.date_no_seconds}} +Si ce spectacle t'intéresse toujours, merci de nous le signaler en cliquant sur ce lien : {% url "bda-revente-interested" revente.id %}. Dans le cas où plusieurs personnes seraient intéressées, nous procèderons à un tirage au sort le {{revente.date_no_seconds}} Chaleureusement, Le BdA diff --git a/bda/templates/mail-shotgun.txt b/bda/templates/mail-shotgun.txt index 8c4e7bd9..4f972cf9 100644 --- a/bda/templates/mail-shotgun.txt +++ b/bda/templates/mail-shotgun.txt @@ -2,7 +2,7 @@ Bonjour {{ user.get_full_name }} Une place pour le spectacle {{ spectacle.title }} ({{spectacle.date_no_seconds}}) a été postée sur BdA-Revente. -Puisque ce spectacle a lieu dans moins de 24h, il n'y a pas de tirage au sort pour cette place : elle est disponible immédiatement à l'addresse {{url "bda-buy-revente" spectacle.id}}, à la disposition de tous. +Puisque ce spectacle a lieu dans moins de 24h, il n'y a pas de tirage au sort pour cette place : elle est disponible immédiatement à l'addresse {%url "bda-buy-revente" spectacle.id%}, à la disposition de tous. Chaleureusement, Le BdA From dff0b3ffdddeec754ec8664b1d850b94c4cb8ac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Mon, 3 Oct 2016 20:06:33 +0200 Subject: [PATCH 5/6] Corrections dans les mails de revente - full_name -> first_name - Date - Url --- bda/models.py | 10 +++++++++- bda/templates/mail-revente.txt | 10 +++++++--- bda/templates/mail-shotgun.txt | 9 ++++++--- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/bda/models.py b/bda/models.py index 085bd548..90ea6b1d 100644 --- a/bda/models.py +++ b/bda/models.py @@ -8,6 +8,7 @@ import calendar import random from datetime import timedelta +from django.contrib.sites.models import Site from django.db import models from django.contrib.auth.models import User from django.template import loader, Context @@ -244,6 +245,11 @@ class SpectacleRevente(models.Model): # On a aussi 1h pour changer d'avis return self.date + delay + timedelta(hours=1) + def expiration_time_str(self): + return self.expiration_time \ + .astimezone(timezone.get_current_timezone()) \ + .strftime('%D à %H:%M') + @property def shotgun(self): # Soit on a dépassé le délai du tirage, soit il reste peu de @@ -270,7 +276,8 @@ class SpectacleRevente(models.Model): mail_body = render_template('mail-revente.txt', { 'user': participant.user, 'spectacle': self.attribution.spectacle, - 'revente': self}) + 'revente': self, + 'domain': Site.objects.get_current().domain}) mail_tot = mail.EmailMessage( mail_object, mail_body, settings.REVENTE_FROM, [participant.user.email], @@ -291,6 +298,7 @@ class SpectacleRevente(models.Model): mail_body = render_template('mail-shotgun.txt', { 'user': participant.user, 'spectacle': self.attribution.spectacle, + 'domain': Site.objects.get_current(), 'mail': self.attribution.participant.user.email}) mail_tot = mail.EmailMessage( mail_object, mail_body, diff --git a/bda/templates/mail-revente.txt b/bda/templates/mail-revente.txt index 94cab1b1..6d125988 100644 --- a/bda/templates/mail-revente.txt +++ b/bda/templates/mail-revente.txt @@ -1,8 +1,12 @@ -Bonjour {{ user.get_full_name }} +Bonjour {{ user.first_name }} -Une place pour le spectacle {{ spectacle.title }} ({{spectacle.date_no_seconds}}) a été postée sur BdA-Revente. +Une place pour le spectacle {{ spectacle.title }} ({{ spectacle.date_no_seconds }}) +a été postée sur BdA-Revente. -Si ce spectacle t'intéresse toujours, merci de nous le signaler en cliquant sur ce lien : {% url "bda-revente-interested" revente.id %}. Dans le cas où plusieurs personnes seraient intéressées, nous procèderons à un tirage au sort le {{revente.date_no_seconds}} +Si ce spectacle t'intéresse toujours, merci de nous le signaler en cliquant +sur ce lien : http://{{ domain }}{% url "bda-revente-interested" revente.id %}. +Dans le cas où plusieurs personnes seraient intéressées, nous procèderons à +un tirage au sort le {{ revente.expiration_time_str }} Chaleureusement, Le BdA diff --git a/bda/templates/mail-shotgun.txt b/bda/templates/mail-shotgun.txt index 4f972cf9..899d5c85 100644 --- a/bda/templates/mail-shotgun.txt +++ b/bda/templates/mail-shotgun.txt @@ -1,8 +1,11 @@ -Bonjour {{ user.get_full_name }} +Bonjour {{ user.first_name }} -Une place pour le spectacle {{ spectacle.title }} ({{spectacle.date_no_seconds}}) a été postée sur BdA-Revente. +Une place pour le spectacle {{ spectacle.title }} ({{ spectacle.date_no_seconds }}) +a été postée sur BdA-Revente. -Puisque ce spectacle a lieu dans moins de 24h, il n'y a pas de tirage au sort pour cette place : elle est disponible immédiatement à l'addresse {%url "bda-buy-revente" spectacle.id%}, à la disposition de tous. +Puisque ce spectacle a lieu dans moins de 24h, il n'y a pas de tirage au sort pour +cette place : elle est disponible immédiatement à l'addresse +http://{{ domain }}{% url "bda-buy-revente" spectacle.id %}, à la disposition de tous. Chaleureusement, Le BdA From a49bb5a799c6c1fbc535cc6650f2232f07bef349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20P=C3=A9pin?= Date: Mon, 3 Oct 2016 20:21:42 +0200 Subject: [PATCH 6/6] Typos --- bda/models.py | 2 +- bda/templates/mail-revente.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bda/models.py b/bda/models.py index 90ea6b1d..72590dac 100644 --- a/bda/models.py +++ b/bda/models.py @@ -321,7 +321,7 @@ class SpectacleRevente(models.Model): mail_buyer = """Bonjour, Tu as été tiré-e au sort pour racheter une place pour %s le %s (%s) à %0.02f€. -Tu peux contacter le vendeur à l'adresse %s. +Tu peux contacter le/la vendeur-se à l'adresse %s. Chaleureusement, Le BdA""" % (spectacle.title, spectacle.date_no_seconds(), diff --git a/bda/templates/mail-revente.txt b/bda/templates/mail-revente.txt index 6d125988..899afe3b 100644 --- a/bda/templates/mail-revente.txt +++ b/bda/templates/mail-revente.txt @@ -6,7 +6,7 @@ a été postée sur BdA-Revente. Si ce spectacle t'intéresse toujours, merci de nous le signaler en cliquant sur ce lien : http://{{ domain }}{% url "bda-revente-interested" revente.id %}. Dans le cas où plusieurs personnes seraient intéressées, nous procèderons à -un tirage au sort le {{ revente.expiration_time_str }} +un tirage au sort le {{ revente.expiration_time_str }}. Chaleureusement, Le BdA