2019-08-08 07:44:47 +00:00
|
|
|
# coding: utf-8
|
|
|
|
from django.core.management.base import BaseCommand
|
|
|
|
from django.utils import timezone
|
|
|
|
|
|
|
|
from camps.models import Camp
|
|
|
|
from sponsors.models import Sponsor
|
|
|
|
from sponsors.email import add_sponsorticket_email
|
|
|
|
from tickets.models import SponsorTicket, TicketType
|
|
|
|
|
|
|
|
|
|
|
|
class Command(BaseCommand):
|
|
|
|
help = "Emails sponsor tickets"
|
|
|
|
|
|
|
|
def add_arguments(self, parser):
|
|
|
|
parser.add_argument("camp_slug", type=str)
|
|
|
|
|
|
|
|
def output(self, message):
|
|
|
|
self.stdout.write(
|
|
|
|
"{}: {}".format(timezone.now().strftime("%Y-%m-%d %H:%M:%S"), message)
|
|
|
|
)
|
|
|
|
|
|
|
|
def handle(self, *args, **options):
|
|
|
|
camp = Camp.objects.get(slug=options["camp_slug"])
|
2019-08-08 08:03:27 +00:00
|
|
|
sponsors = Sponsor.objects.filter(tier__camp=camp, tickets_generated=True)
|
2019-08-08 07:44:47 +00:00
|
|
|
|
|
|
|
for sponsor in sponsors:
|
2019-08-08 07:55:06 +00:00
|
|
|
if (
|
|
|
|
sponsor.tier.tickets and
|
|
|
|
sponsor.tickets_generated and
|
|
|
|
sponsor.ticket_email and
|
|
|
|
sponsor.ticket_ready and
|
|
|
|
not sponsor.tickets_sent
|
|
|
|
):
|
2019-08-08 08:44:37 +00:00
|
|
|
self.output("# Generating outgoing emails to send tickets for {}:".format(sponsor))
|
|
|
|
for ticket in sponsor.sponsorticket_set.all():
|
|
|
|
# send the email
|
|
|
|
if add_sponsorticket_email(ticket=ticket):
|
|
|
|
logger.info("OK: email to %s added" % sponsor)
|
|
|
|
else:
|
|
|
|
logger.error("Unable to send sponsor ticket email to %s" % sponsor)
|
|
|
|
|
|
|
|
sponsor.tickets_sent = True
|
|
|
|
sponsor.save()
|
2019-08-08 07:44:47 +00:00
|
|
|
|