1393: Этап №4 - Рассылка по тематике

добавлена проверка за последние 48 часов
remotes/origin/mobile_from_stage4
Alexander Burdeiny 10 years ago
parent b0899be0ba
commit 226cad5922
  1. 26
      emencia/django/newsletter/mailer.py

@ -35,6 +35,7 @@ from django.utils.encoding import smart_str
from django.utils.encoding import smart_unicode
from django.core.urlresolvers import reverse
from django.core.exceptions import SuspiciousOperation
from django.db.models import Q
from emencia.django.newsletter.models import Newsletter
from emencia.django.newsletter.models import ContactMailingStatus
@ -344,11 +345,28 @@ class NewsLetterSender(object):
expedition_list = self.newsletter.mailing_list.expedition_set().exclude(id__in=already_sent)
return expedition_list
else:
already_sent = ContactMailingStatus.objects.filter(status=ContactMailingStatus.SENT,
newsletter=self.newsletter).values_list('contact__id', flat=True)
qs = self.newsletter.mailing_list.expedition_set().exclude(id__in=already_sent)
if self.newsletter.mailing_list.theme_for_filter.all():
qs = self.newsletter.mailing_list.expedition_set()
if self.newsletter.theme_for_filter:
already_sent = \
ContactMailingStatus.objects.filter(
status=ContactMailingStatus.SENT,
Q(newsletter=self.newsletter) | \
Q(newsletter__mailing_list=self.newsletter.mailing_list,
creation_date__gte=datetime.now() - timedelta(days=2))
).values_list('contact__id', flat=True)
qs = qs.filter(contactsettings__theme=self.newsletter.theme_for_filter)
else:
already_sent = \
ContactMailingStatus.objects.filter(
status=ContactMailingStatus.SENT,
newsletter=self.newsletter
).values_list('contact__id', flat=True)
qs = qs.exclude(id__in=already_sent)
return qs
def update_contact_status(self, contact, exception, send):

Loading…
Cancel
Save