diff --git a/emencia/django/newsletter/mailer.py b/emencia/django/newsletter/mailer.py index 5d375236..62bd957d 100644 --- a/emencia/django/newsletter/mailer.py +++ b/emencia/django/newsletter/mailer.py @@ -106,15 +106,12 @@ class NewsLetterSender(object): self.themes = dict(Theme.objects.language('ru').all().values_list('pk', 'name')) self.newsletter_template2 = None - self.title_template2 = None self.ab_state = Newsletter.A if newsletter.ab_testing == True: self.newsletter_template2 = Template(self.newsletter.content2) - self.title_template2 = Template(self.newsletter.title2) if self.newsletter.ab_final_stage: self.ab_state = self.newsletter.ab_final_choice - self.title_template = Template(self.newsletter.title) # self.announce = self.newsletter.mailing_list.announce @@ -266,15 +263,13 @@ class NewsLetterSender(object): def build_title_content(self, contact): """Generate the email title for a contact""" - context = Context({'contact': contact, - 'UNIQUE_KEY': ''.join(sample(UNIQUE_KEY_CHAR_SET, - UNIQUE_KEY_LENGTH))}) - if self.newsletter.ab_testing and self.ab_state == Newsletter.A: - title = self.title_template.render(context) + # context = Context({'contact': contact, + # 'UNIQUE_KEY': ''.join(sample(UNIQUE_KEY_CHAR_SET, + # UNIQUE_KEY_LENGTH))}) + if not self.newsletter.ab_testing or (self.newsletter.ab_testing and self.ab_state == Newsletter.A): + title = self.newsletter.title.format(**self.preheader_ctx) elif self.newsletter.ab_testing and self.ab_state == Newsletter.B: - title = self.title_template2.render(context) - else: - title = self.title_template.render(context) + title = self.newsletter.title2.format(**self.preheader_ctx) return title def build_email_content(self, contact, announce_context=None): @@ -316,9 +311,9 @@ class NewsLetterSender(object): # include preheader if self.newsletter.preheader: if not self.newsletter.ab_testing or self.ab_state == Newsletter.A: - preheader = self.newsletter.preheader.format(**self.build_preheader_ctx(contact)) + preheader = self.newsletter.preheader.format(**self.preheader_ctx) else: - preheader = self.newsletter.preheader2.format(**self.build_preheader_ctx(contact)) + preheader = self.newsletter.preheader2.format(**self.preheader_ctx) preheader_html = render_to_string('newsletter/newsletter_preheader.html', {'preheader': preheader}) content = body_insertion(content, preheader_html) @@ -334,7 +329,7 @@ class NewsLetterSender(object): count=count, theme_word=theme_word.make_agree_with_number(count).word, ) - return { + self.preheader_ctx = { 'name': contact.first_name or contact.last_name or _(u'Подписчик'), 'themes': ', '.join([self.themes.get(x) for x in contact.contactsettings.theme.all().values_list('pk', flat=True)[:3]]) + t_add, } @@ -476,6 +471,8 @@ class Mailer(NewsLetterSender): print '- Processing %s/%s (%s)' % ( i, number_of_recipients, contact.pk) + # + self.build_preheader_ctx(contact) # check if events for this newsletter exists announce_context = contact.get_announce_context() if self.announce else None if self.announce and not announce_context: