# -*- coding: utf-8 -*- from __future__ import unicode_literals from django.core.management import BaseCommand from django.utils import timezone from datetime import timedelta from bda.models import SpectacleRevente class Command(BaseCommand): help = "Envoie les mails de notification et effectue " \ "les tirages au sort des reventes" def handle(self, *args, **options): now = timezone.now() self.stdout.write(now) reventes = SpectacleRevente.objects.all() for revente in reventes: # Check si < 24h if (revente.attribution.spectacle.date <= revente.date + timedelta(days=1)) and \ now >= revente.date + timedelta(minutes=15) and \ not revente.notif_sent: 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): 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): revente.tirage() self.stdout.write("Tirage effectué, mails envoyés")