Exemplo n.º 1
0
    def render_template(self, extra_context: dict = None, form_kwargs: dict = None):
        if extra_context is None:
            extra_context = dict()

        unsubscribe_absolute_url = get_absolute_url('subscribers:unsubscribe_manual', kwargs={
            'mailing_list_uuid': self.mailing_list.uuid,
        })

        subscribe_absolute_url = get_absolute_url('subscribers:subscribe', kwargs={
            'mailing_list_uuid': self.mailing_list.uuid,
        })

        context = {
            'mailing_list': self.mailing_list,
            'list_name': self.mailing_list.name,
            'content': self.content_html,
            'unsub': unsubscribe_absolute_url,
            'subscribe_link': subscribe_absolute_url,
            'contact_email': self.mailing_list.contact_email_address,
        }

        if self.is_form:
            if form_kwargs is None:
                form_kwargs = dict()

            form_class = self.get_form_class()
            form = form_class(mailing_list=self.mailing_list, **form_kwargs)
            context['form'] = form

        context.update(extra_context)
        content_template_name = self.settings['content_template_name']
        html = render_to_string(content_template_name, context)
        return html
Exemplo n.º 2
0
 def get_context_data(self, **kwargs):
     kwargs['submenu'] = 'forms'
     kwargs['sub'] = get_absolute_url(
         'subscribers:subscribe',
         {'mailing_list_uuid': self.mailing_list.uuid})
     kwargs['sub_short'] = get_absolute_url(
         'subscribe_shortcut',
         {'mailing_list_slug': self.mailing_list.slug})
     kwargs['unsub'] = get_absolute_url(
         'subscribers:unsubscribe_manual',
         {'mailing_list_uuid': self.mailing_list.uuid})
     kwargs['unsub_short'] = get_absolute_url(
         'unsubscribe_shortcut',
         {'mailing_list_slug': self.mailing_list.slug})
     return super().get_context_data(**kwargs)
Exemplo n.º 3
0
 def test_emails_contents(self):
     for email in mail.outbox:
         with self.subTest(email=email):
             self.assertEqual(email.subject, 'Test email subject')
             subscriber = Subscriber.objects.get(email=email.to[0])
             unsubscribe_url = get_absolute_url(
                 'subscribers:unsubscribe', {
                     'mailing_list_uuid': self.mailing_list.uuid,
                     'subscriber_uuid': subscriber.uuid,
                     'campaign_uuid': self.campaign.uuid
                 })
             text_body = email.body
             html_body, mimetype = email.alternatives[0]
             self.assertIn(
                 unsubscribe_url, text_body,
                 'Email plain text body must contain unsubscribe link.')
             self.assertIn(
                 '/track/click/', text_body,
                 'Email plain text body must contain track click links.')
             self.assertNotIn(
                 '/track/open/', text_body,
                 'Email plain text body must NOT contain track open pixel.')
             self.assertIn(
                 unsubscribe_url, html_body,
                 'Email HTML body must contain unsubscribe link.')
             self.assertIn(
                 '/track/click/', html_body,
                 'Email HTML body must contain track click links.')
             self.assertIn(
                 '/track/open/', html_body,
                 'Email HTML body must contain track open pixel.')
Exemplo n.º 4
0
def send_campaign_email_subscriber(email, subscriber, site, connection=None):
    unsubscribe_absolute_url = get_absolute_url('subscribers:unsubscribe', kwargs={
        'mailing_list_uuid': email.campaign.mailing_list.uuid,
        'subscriber_uuid': subscriber.uuid,
        'campaign_uuid': email.campaign.uuid
    })
    subscribe_absolute_url = get_absolute_url('subscribers:subscribe', kwargs={
        'mailing_list_uuid': email.campaign.mailing_list.uuid
    })
    context = {
        'domain': site.domain,
        'uuid': subscriber.uuid,
        'name': subscriber.name,
        'sub': subscribe_absolute_url,
        'unsub': unsubscribe_absolute_url
    }
    return send_campaign_email(email, context, subscriber.get_email(), connection)
Exemplo n.º 5
0
 def test_email_contents_unsub_link(self):
     unsubscribe_url = get_absolute_url('subscribers:unsubscribe_manual', {
         'mailing_list_uuid': self.email.campaign.mailing_list.uuid,
     })
     text_body = self.email_message.body
     html_body, mimetype = self.email_message.alternatives[0]
     self.assertIn(unsubscribe_url, text_body, 'Email plain text body must contain unsubscribe link.')
     self.assertIn(unsubscribe_url, html_body, 'Email HTML body must contain unsubscribe link.')
Exemplo n.º 6
0
def send_campaign_email_test(email, recipient_list):
    if email.campaign.mailing_list is not None:
        unsubscribe_absolute_url = get_absolute_url(
            'subscribers:unsubscribe_manual',
            kwargs={'mailing_list_uuid': email.campaign.mailing_list.uuid})
    else:
        unsubscribe_absolute_url = '#'
    context = get_test_email_context(unsub=unsubscribe_absolute_url)
    return send_campaign_email(email, context, recipient_list, is_test=True)
Exemplo n.º 7
0
def send_campaign_email_test(email, recipient_list):
    if email.campaign.mailing_list is not None:
        unsubscribe_absolute_url = get_absolute_url('subscribers:unsubscribe_manual', kwargs={
            'mailing_list_uuid': email.campaign.mailing_list.uuid
        })
    else:
        unsubscribe_absolute_url = '#'
    context = get_test_email_context(unsub=unsubscribe_absolute_url)
    return send_campaign_email(email, context, recipient_list, is_test=True)
Exemplo n.º 8
0
def send_campaign_email_subscriber(email, subscriber, site, connection=None):
    unsubscribe_absolute_url = get_absolute_url(
        'subscribers:unsubscribe',
        kwargs={
            'mailing_list_uuid': email.campaign.mailing_list.uuid,
            'subscriber_uuid': subscriber.uuid,
            'campaign_uuid': email.campaign.uuid
        })
    subscribe_absolute_url = get_absolute_url(
        'subscribers:subscribe',
        kwargs={'mailing_list_uuid': email.campaign.mailing_list.uuid})
    context = {
        'domain': site.domain,
        'uuid': subscriber.uuid,
        'name': subscriber.name,
        'sub': subscribe_absolute_url,
        'unsub': unsubscribe_absolute_url
    }
    return send_campaign_email(email, context, subscriber.get_email(),
                               connection)
Exemplo n.º 9
0
 def test_email_contents_unsub_link(self):
     unsubscribe_url = get_absolute_url(
         'subscribers:unsubscribe_manual', {
             'mailing_list_uuid': self.email.campaign.mailing_list.uuid,
         })
     text_body = self.email_message.body
     html_body, mimetype = self.email_message.alternatives[0]
     self.assertIn(unsubscribe_url, text_body,
                   'Email plain text body must contain unsubscribe link.')
     self.assertIn(unsubscribe_url, html_body,
                   'Email HTML body must contain unsubscribe link.')
Exemplo n.º 10
0
def send_campaign_email_subscriber(email, subscriber, site, connection=None):
    unsubscribe_absolute_url = get_absolute_url(
        "subscribers:unsubscribe",
        kwargs={
            "mailing_list_uuid": email.campaign.mailing_list.uuid,
            "subscriber_uuid": subscriber.uuid,
            "campaign_uuid": email.campaign.uuid,
        },
    )
    subscribe_absolute_url = get_absolute_url(
        "subscribers:subscribe",
        kwargs={"mailing_list_uuid": email.campaign.mailing_list.uuid},
    )
    context = {
        "domain": site.domain,
        "uuid": subscriber.uuid,
        "name": subscriber.name,
        "sub": subscribe_absolute_url,
        "unsub": unsubscribe_absolute_url,
    }
    return send_campaign_email(email, context, subscriber.get_email(),
                               connection)
Exemplo n.º 11
0
 def test_emails_contents(self):
     for email in mail.outbox:
         with self.subTest(email=email):
             self.assertEqual(email.subject, 'Test email subject')
             subscriber = Subscriber.objects.get(email=email.to[0])
             unsubscribe_url = get_absolute_url('subscribers:unsubscribe', {
                 'mailing_list_uuid': self.mailing_list.uuid,
                 'subscriber_uuid': subscriber.uuid,
                 'campaign_uuid': self.campaign.uuid
             })
             text_body = email.body
             html_body, mimetype = email.alternatives[0]
             self.assertIn(unsubscribe_url, text_body, 'Email plain text body must contain unsubscribe link.')
             self.assertIn('/track/click/', text_body, 'Email plain text body must contain track click links.')
             self.assertNotIn('/track/open/', text_body, 'Email plain text body must NOT contain track open pixel.')
             self.assertIn(unsubscribe_url, html_body, 'Email HTML body must contain unsubscribe link.')
             self.assertIn('/track/click/', html_body, 'Email HTML body must contain track click links.')
             self.assertIn('/track/open/', html_body, 'Email HTML body must contain track open pixel.')
Exemplo n.º 12
0
 def test_get_aboluste_url_site_domain(self):
     Site.objects.update(domain='mysite.com')
     Site.objects.clear_cache()
     url = get_absolute_url('login')
     self.assertEqual(url, 'http://mysite.com/accounts/login/')
Exemplo n.º 13
0
 def test_get_aboluste_url_https(self):
     url = get_absolute_url('subscribers:subscribe', kwargs={
         'mailing_list_uuid': self.uuid
     })
     self.assertEqual(url, 'https://example.com/subscribe/%s/' % self.uuid)