Merge branch 'Kerl/mails_auto' into 'master'

Ajoute une commande pour les mails de rappel

Les mails de rappel pour les spectacles à venir (dans les 4 jours)
peuvent être envoyés à l'aide de la commande
`python manage.py sendrappels`.
Il suffit donc de mettre un cron qui lance cette commande à un intervalle
régulier pour ne plus avoir à se soucier des mails de rappel.

Fixes #1

See merge request !60
This commit is contained in:
Basile Clement 2016-07-15 09:20:58 +02:00
commit 3df115ac99
3 changed files with 28 additions and 0 deletions

View file

View file

View file

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.core.management.base import BaseCommand
from django.utils import timezone
from datetime import timedelta
from bda.models import Spectacle
class Command(BaseCommand):
help = 'Envoie les mails de rappel des spectacles dont la date ' \
'approche.\nNe renvoie pas les mails déjà envoyés.'
def handle(self, *args, **options):
now = timezone.now()
delay = timedelta(days=4)
shows = Spectacle.objects \
.filter(date__range=(now, now+delay)) \
.filter(tirage__active=True) \
.filter(rappel_sent__isnull=True) \
.all()
for show in shows:
show.send_rappel()
self.stdout.write(
'Mails de rappels pour %s envoyés avec succès.' % show)
if not shows:
self.stdout.write('Aucun mail à envoyer.')