|
|
|
|
@ -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): |
|
|
|
|
|