Skip to content
Snippets Groups Projects
mail_compose_message.py 1.17 KiB
Newer Older
Vincent Hatakeyama's avatar
Vincent Hatakeyama committed
from odoo import fields, models  # type: ignore[import-untyped]


class MailComposer(models.TransientModel):
    _inherit = "mail.compose.message"

    is_redner_template = fields.Boolean(related="template_id.is_redner_template")

    def _set_value_from_template(self, template_fname, composer_fname=False):
        """Override: Set composer value from its template counterpart, considering
        redner integration."""
        self.ensure_one()
        composer_fname = composer_fname or template_fname

        res = super()._set_value_from_template(
            template_fname, composer_fname=composer_fname
        )
        if self.is_redner_template and template_fname == "body_html":
            if self.composition_mode == "comment" and not self.composition_batch:
                res_ids = self._evaluate_res_ids()
                rendering_res_ids = res_ids or [0]  # Fallback to dummy ID
                template_rendered = self.template_id._patch_email_values(
                    {composer_fname: {}}, rendering_res_ids[0]
                )[composer_fname]
                self[composer_fname] = template_rendered
                return self[composer_fname]

        return res