diff --git a/emencia/django/newsletter/forms.py b/emencia/django/newsletter/forms.py index cae37b70..41a2593e 100644 --- a/emencia/django/newsletter/forms.py +++ b/emencia/django/newsletter/forms.py @@ -224,7 +224,8 @@ class ContactForm(forms.ModelForm): self.instance = Contact.objects.get(email__iexact=email) return email except (Contact.DoesNotExist, ): - return email + pass + return email class ContactSettingsForm(forms.ModelForm): diff --git a/emencia/django/newsletter/mailer.py b/emencia/django/newsletter/mailer.py index 85f79411..d93d23b9 100644 --- a/emencia/django/newsletter/mailer.py +++ b/emencia/django/newsletter/mailer.py @@ -332,15 +332,19 @@ class NewsLetterSender(object): return message_attachment def gen_attachment_logo(self, obj=None, prefix='logo_', resize=None, logo=None, **kwargs): + logo_path = None if obj is not None: if prefix == 'blog': - logo = obj.get_blog_preview2() + preview = obj.get_blog_preview2() + if preview and preview.file_path: + logo_path = preview.file_path.path else: logo = getattr(obj, 'logo') - if not logo: + if not logo and not logo_path: logo_path = default_storage.path('newsletter/images/no-logo.png') - else: + elif logo and not logo_path: logo_path = logo.path + print(logo, logo_path, obj) try: ctype, encoding = mimetypes.guess_type(logo_path) @@ -570,6 +574,20 @@ class NewsLetterSender(object): params.update({'ab': self.ab_state}) ContactMailingStatus.objects.create(**params) +def test(): + from django.utils.translation import activate + activate('ru') + n = Newsletter.objects.get(pk=119) + m = Mailer(n, test=True) + m.smtp_connect() + m.attachments = m.build_daily_attachments() + for ct in m.expedition_list: + m.build_preheader_ctx(ct) + announce_context = ct.get_announce_context_v2() if m.announce else None + message = m.build_message(ct, announce_context) + m.smtp.sendmail(m.newsletter.header_sender, + ct.email, + message.as_string()) class Mailer(NewsLetterSender): """Mailer for generating and sending newsletters diff --git a/emencia/django/newsletter/utils/newsletter.py b/emencia/django/newsletter/utils/newsletter.py index 6ffb8fca..8eb19f01 100644 --- a/emencia/django/newsletter/utils/newsletter.py +++ b/emencia/django/newsletter/utils/newsletter.py @@ -35,8 +35,11 @@ def track_links(content, context): 'no-track' not in link_markup.get('rel', ''): link_href = link_markup['href'] link_title = link_markup.get('title', link_href) - link, created = Link.objects.get_or_create(url=link_href, + try: + link, created = Link.objects.get_or_create(url=link_href, defaults={'title': link_title}) + except Link.MultipleObjectsReturned: + link = Link.objects.filter(url=link_href)[0] link_markup['href'] = 'http://%s%s' % (context['domain'], reverse('newsletter_newsletter_tracking_link', args=[context['newsletter'].slug, context['uidb36'], context['token'], diff --git a/events/views.py b/events/views.py index 5768b162..c18430c8 100644 --- a/events/views.py +++ b/events/views.py @@ -122,7 +122,7 @@ class SubscribeView(FormView): try: contact = Contact.objects.filter(Q(user=user) | Q(email=user.email))[0] except (Contact.DoesNotExist, IndexError): - contact = Contact(defaults) + contact = Contact(**defaults) contact.save() return contact