Ou comment faire plaisir à pylint sur les bouts de code concernés
par cette MR
This commit is contained in:
Martin Pépin 2016-11-20 16:39:26 +01:00
parent 03f7dff813
commit f93b095e0f
6 changed files with 77 additions and 41 deletions

View file

@ -1,14 +1,21 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""
Gestion en ligne de commande des reventes.
"""
from __future__ import unicode_literals from __future__ import unicode_literals
from datetime import timedelta
from django.core.management import BaseCommand from django.core.management import BaseCommand
from django.utils import timezone from django.utils import timezone
from datetime import timedelta
from bda.models import SpectacleRevente from bda.models import SpectacleRevente
class Command(BaseCommand): class Command(BaseCommand):
"""
Objet `BaseCommand`, cf ``self.help`` pour plus d'informations.
"""
help = "Envoie les mails de notification et effectue " \ help = "Envoie les mails de notification et effectue " \
"les tirages au sort des reventes" "les tirages au sort des reventes"
leave_locale_alone = True leave_locale_alone = True

View file

@ -1,14 +1,21 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
"""
Gestion en ligne de commande des mails de rappel.
"""
from __future__ import unicode_literals from __future__ import unicode_literals
from datetime import timedelta
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
from django.utils import timezone from django.utils import timezone
from datetime import timedelta
from bda.models import Spectacle from bda.models import Spectacle
class Command(BaseCommand): class Command(BaseCommand):
"""
Objet Command, cf ``self.help`` pour plus d'informations.
"""
help = 'Envoie les mails de rappel des spectacles dont la date ' \ help = 'Envoie les mails de rappel des spectacles dont la date ' \
'approche.\nNe renvoie pas les mails déjà envoyés.' 'approche.\nNe renvoie pas les mails déjà envoyés.'
leave_locale_alone = True leave_locale_alone = True

View file

@ -29,7 +29,8 @@ class Tirage(models.Model):
default=False) default=False)
def __str__(self): def __str__(self):
return "%s - %s" % (self.title, formats.localize(timezone.template_localtime(self.fermeture))) return "%s - %s" % (self.title, formats.localize(
timezone.template_localtime(self.fermeture)))
@python_2_unicode_compatible @python_2_unicode_compatible
@ -91,6 +92,10 @@ class Spectacle(models.Model):
) )
def send_rappel(self): def send_rappel(self):
"""
Envoie un mail de rappel à toutes les personnes qui ont une place pour
ce spectacle.
"""
# On récupère la liste des participants # On récupère la liste des participants
members = {} members = {}
for attr in Attribution.objects.filter(spectacle=self).all(): for attr in Attribution.objects.filter(spectacle=self).all():
@ -285,6 +290,10 @@ class SpectacleRevente(models.Model):
self.save() self.save()
def mail_shotgun(self): def mail_shotgun(self):
"""
Envoie un mail à toutes les personnes intéréssées par le spectacle pour
leur indiquer qu'il est désormais disponible au shotgun.
"""
inscrits = self.attribution.spectacle.subscribed.select_related('user') inscrits = self.attribution.spectacle.subscribed.select_related('user')
mails_to_send = [] mails_to_send = []
@ -309,6 +318,11 @@ class SpectacleRevente(models.Model):
self.save() self.save()
def tirage(self): def tirage(self):
"""
Lance le tirage au sort associé à la revente. Un gagnant est choisi
parmis les personnes intéressées par le spectacle. Les personnes sont
ensuites prévenues par mail du résultat du tirage.
"""
inscrits = list(self.answered_mail.all()) inscrits = list(self.answered_mail.all())
spectacle = self.attribution.spectacle spectacle = self.attribution.spectacle
seller = self.seller seller = self.seller
@ -327,14 +341,16 @@ class SpectacleRevente(models.Model):
} }
mails.append(mail.EmailMessage( mails.append(mail.EmailMessage(
mail_subject, mail_subject,
loader.render_to_string('bda/mails/revente-winner.txt', context), loader.render_to_string('bda/mails/revente-winner.txt',
context),
from_email=settings.MAIL_DATA['revente']['FROM'], from_email=settings.MAIL_DATA['revente']['FROM'],
to=[winner.user.email], to=[winner.user.email],
reply_to=[seller.user.email], reply_to=[seller.user.email],
)) ))
mails.append(mail.EmailMessage( mails.append(mail.EmailMessage(
mail_subject, mail_subject,
loader.render_to_string('bda/mails/revente-seller.txt', context), loader.render_to_string('bda/mails/revente-seller.txt',
context),
from_email=settings.MAIL_DATA['revente']['FROM'], from_email=settings.MAIL_DATA['revente']['FROM'],
to=[seller.user.email], to=[seller.user.email],
reply_to=[winner.user.email], reply_to=[winner.user.email],
@ -345,11 +361,12 @@ class SpectacleRevente(models.Model):
if inscrit == winner: if inscrit == winner:
continue continue
mail_body = loader.render_to_string('bda/mails/revente-loser.txt', { mail_body = loader.render_to_string(
'acheteur': inscrit.user, 'bda/mails/revente-loser.txt',
{'acheteur': inscrit.user,
'vendeur': seller.user, 'vendeur': seller.user,
'spectacle': spectacle, 'spectacle': spectacle}
}) )
mails.append(mail.EmailMessage( mails.append(mail.EmailMessage(
mail_subject, mail_body, mail_subject, mail_body,
from_email=settings.MAIL_DATA['revente']['FROM'], from_email=settings.MAIL_DATA['revente']['FROM'],

View file

@ -4,7 +4,7 @@ Une place pour le spectacle {{ spectacle.title }} ({{ spectacle.date }})
a été postée sur BdA-Revente. 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 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 cette place : elle est disponible immédiatement à l'adresse
http://{{ domain }}{% url "bda-buy-revente" spectacle.id %}, à la disposition de tous. http://{{ domain }}{% url "bda-buy-revente" spectacle.id %}, à la disposition de tous.
Chaleureusement, Chaleureusement,

View file

@ -1,4 +1,9 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
"""
Formats français.
"""
from __future__ import unicode_literals from __future__ import unicode_literals
DATETIME_FORMAT = r'j F Y \à H:i' DATETIME_FORMAT = r'j F Y \à H:i'

View file

@ -45,7 +45,7 @@ INSTALLED_APPS = (
'autocomplete_light', 'autocomplete_light',
'captcha', 'captcha',
'django_cas_ng', 'django_cas_ng',
'debug_toolbar', # 'debug_toolbar',
'bootstrapform', 'bootstrapform',
'kfet', 'kfet',
'channels', 'channels',