gestioCOF/bda/management/commands/sendrappels.py
Martin Pépin ce03a28b4b 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
2016-07-12 20:38:27 +02:00

30 lines
980 B
Python

# -*- 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(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()
show.rappel_sent = now
show.save()
self.stdout.write(
'Mails de rappels pour %s envoyés avec succès.' % show)
if not shows:
self.stdout.write('Aucun mail à envoyer.')