diff --git a/emencia/django/newsletter/mailer.py b/emencia/django/newsletter/mailer.py index 46980a1a..29ced6c5 100644 --- a/emencia/django/newsletter/mailer.py +++ b/emencia/django/newsletter/mailer.py @@ -381,10 +381,9 @@ class Mailer(NewsLetterSender): else: announce_context = None - message = self.build_message(contact, announce_context) try: if send: - + message = self.build_message(contact, announce_context) self.smtp.sendmail(self.newsletter.header_sender, contact.email, message.as_string()) diff --git a/emencia/django/newsletter/management/commands/send_newsletter.py b/emencia/django/newsletter/management/commands/send_newsletter.py index e069d2f9..b583bdea 100644 --- a/emencia/django/newsletter/management/commands/send_newsletter.py +++ b/emencia/django/newsletter/management/commands/send_newsletter.py @@ -23,10 +23,16 @@ class Command(NoArgsCommand): for newsletter in Newsletter.objects.exclude( status=Newsletter.DRAFT).exclude(status=Newsletter.SENT): mailer = Mailer(newsletter, verbose=verbose) + if mailer.can_send: - if verbose: - print 'Start emailing %s' % newsletter.title + + #if verbose: + # with open('/tmp/cron.log', 'a') as f:f.write('Start emailing %s\n' % newsletter.title) + # print 'Start emailing %s' % newsletter.title + mailer.run() + + if verbose: print 'End session sending' diff --git a/emencia/django/newsletter/views/admin_views.py b/emencia/django/newsletter/views/admin_views.py index 6ad72ab6..d55c7cee 100644 --- a/emencia/django/newsletter/views/admin_views.py +++ b/emencia/django/newsletter/views/admin_views.py @@ -272,7 +272,8 @@ class NewsletterStatistics(DetailView): sent = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.SENT).count() errors = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.ERROR).count() opened = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.OPENED).count() - unsubscribed = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.UNSUBSCRIPTION).count() + unsubscribed = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.UNSUBSCRIPTION).\ + values_list('contact', flat=True).distinct().count() no_data = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.ANNOUNCE_NO_DATA).count() links = self.object.contactmailingstatus_set.filter(status=ContactMailingStatus.LINK_OPENED).count() CMS = ContactMailingStatus diff --git a/proj/settings.py b/proj/settings.py index 2b385ac6..d155829f 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -428,6 +428,10 @@ LOGGING = { 20 2,14 * * * /usr/bin/python /var/www/proj/manage.py banner_log_check_previous_day # update hotels prices 20 1 * * 6 /usr/bin/python /var/www/proj/manage.py update_hotels_price +# newsletter +20 * * * * /usr/bin/python /var/www/proj/manage.py send_newsletter +40 6 * * * /usr/bin/python /var/www/proj/manage.py newsletter_contacts_remove_notactivated + """ THUMBNAIL_DEBUG = DEBUG diff --git a/templates/admin/newsletters/newsletter_list.html b/templates/admin/newsletters/newsletter_list.html index 375efdef..54b824b2 100644 --- a/templates/admin/newsletters/newsletter_list.html +++ b/templates/admin/newsletters/newsletter_list.html @@ -36,7 +36,7 @@