Projet

Général

Profil

0001-compute-email-message-body-once-13552.patch

Serghei Mihai (congés, retour 15/05), 11 octobre 2016 17:16

Télécharger (3,42 ko)

Voir les différences:

Subject: [PATCH] compute email message body once (#13552)

 corbo/models.py                     | 26 ++++++++++++++------------
 corbo/templates/corbo/announce.html |  2 +-
 2 files changed, 15 insertions(+), 13 deletions(-)
corbo/models.py
24 24
    ('homepage', _('Homepage'))
25 25
)
26 26

  
27
UNSUBSCRIBE_LINK_PLACEHOLDER = '##UNSUBSCRIBE_LINK_PLACEHOLDER##'
28

  
27 29
logger = logging.getLogger(__name__)
28 30

  
29 31

  
......
113 115
        total_sent = 0
114 116
        handler = HTML2Text()
115 117
        template = loader.get_template('corbo/announce.html')
116
        m = Message(subject=self.announce.title, mail_from=settings.CORBO_DEFAULT_FROM_EMAIL)
118
        message = Message(subject=self.announce.title, mail_from=settings.CORBO_DEFAULT_FROM_EMAIL,
119
                    html=template.render(Context({'content': self.announce.text,
120
                                                  'unsubscribe_link_placeholder': UNSUBSCRIBE_LINK_PLACEHOLDER})))
121
        message.transformer.apply_to_images(func=transform_image_src)
122
        # perform transformations in message html, like inline css parsing
123
        message.transformer.load_and_transform()
124
        # mark all attached images as inline
125
        message.transformer.make_all_images_inline()
126
        message.transformer.save()
117 127
        for s in subscriptions:
118 128
            if not s.identifier:
119 129
                continue
......
121 131
                                               'identifier': s.identifier})
122 132
            unsubscribe_link = urlparse.urljoin(settings.SITE_BASE_URL, reverse('unsubscribe',
123 133
                                    kwargs={'unsubscription_token': unsubscribe_token}))
124
            message = template.render(Context({'unsubscribe_link': unsubscribe_link,
125
                                               'content': self.announce.text}))
126
            m.html = message
127
            m.transformer.apply_to_images(func=transform_image_src)
128
            # perform transformations in message html, like inline css parsing
129
            m.transformer.load_and_transform()
130
            # mark all attached images as inline
131
            m.transformer.make_all_images_inline()
132
            m.transformer.save()
134
            message.html = message.html.replace(UNSUBSCRIBE_LINK_PLACEHOLDER, unsubscribe_link)
133 135
            handler.body_width = 0
134
            m.text = handler.handle(m.html)
135
            sent = m.send(to=s.identifier)
136
            message.text = handler.handle(message.html)
137
            sent = message.send(to=s.identifier)
136 138
            if sent:
137 139
                total_sent += 1
138 140
                logger.info('Announce "%s" sent to %s', self.announce.title, s.identifier)
corbo/templates/corbo/announce.html
4 4
</div>
5 5
<div class="footer">
6 6
  {% blocktrans %}
7
  Click <a href='{{ unsubscribe_link}}'>here</a> to unsubscribe from this newsletter.
7
  Click <a href='{{ unsubscribe_link_placeholder }}'>here</a> to unsubscribe from this newsletter.
8 8
  {% endblocktrans %}
9 9
</div>
10
-