mirror of https://github.com/OCA/social.git
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
# Copyright 2017 David BEAL @ Akretion
|
||
# Copyright 2019 Camptocamp SA
|
||
|
||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||
|
||
from odoo import api, models
|
||
|
||
try:
|
||
from premailer import Premailer
|
||
except (ImportError, IOError) as err: # pragma: no cover
|
||
import logging
|
||
_logger = logging.getLogger(__name__)
|
||
_logger.debug(err)
|
||
|
||
|
||
class MailTemplate(models.Model):
|
||
_inherit = 'mail.template'
|
||
|
||
@api.multi
|
||
def generate_email(self, res_ids, fields=None):
|
||
"""Use `premailer` to convert styles to inline styles."""
|
||
result = super().generate_email(res_ids, fields=fields)
|
||
if isinstance(res_ids, int):
|
||
result['body_html'] = \
|
||
self._premailer_apply_transform(result["body_html"])
|
||
else:
|
||
for __, data in result.items():
|
||
data['body_html'] = \
|
||
self._premailer_apply_transform(data["body_html"])
|
||
return result
|
||
|
||
def _premailer_apply_transform(self, data_html):
|
||
premailer = Premailer(
|
||
html=data_html,
|
||
**self._get_premailer_options(),
|
||
)
|
||
return premailer.transform()
|
||
|
||
def _get_premailer_options(self):
|
||
return {}
|