You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

39 lines
1.3 KiB

"""Command for sending the newsletter"""
from datetime import datetime, timedelta
from time import sleep
from django.conf import settings
from django.utils.translation import activate
from django.core.management.base import NoArgsCommand
from emencia.django.newsletter.settings import SEND_HOUR_LOOP
from emencia.django.newsletter.mailer import Mailer
from emencia.django.newsletter.models import Newsletter
class Command(NoArgsCommand):
"""Send the newsletter in queue"""
help = 'Send the newsletter in queue'
def handle_noargs(self, **options):
self.end_time = datetime.now() + timedelta(minutes=30)
self.verbose = int(options['verbosity'])
activate(settings.LANGUAGE_CODE)
if SEND_HOUR_LOOP:
while self.end_time > datetime.now():
self.send()
sleep(30)
else:
self.send()
if self.verbose:
print 'End session sending'
def send(self):
for newsletter in Newsletter.objects.exclude(
status__in=[Newsletter.DRAFT,
Newsletter.SENT,
Newsletter.CANCELED]):
mailer = Mailer(newsletter, verbose=self.verbose)
if mailer.can_send:
mailer.run()