Skip to content
Snippets Groups Projects
Commit b96bb2a0 authored by RomainLibert's avatar RomainLibert
Browse files

[FIX] sms: avoid cache miss in compute


We should always ensure to assign something in a compute method

Since sms_template_id is not required, we have to check that it is set
before trying to render the template

Also make sure to have a default value in case you don't have a res_id

closes odoo/odoo#38463

Signed-off-by: default avatarThibault Delavallee (tde) <tde@openerp.com>
parent 7ed0bd25
No related branches found
No related tags found
No related merge requests found
......@@ -26,7 +26,7 @@ class SMSTemplatePreview(models.TransientModel):
result['res_id'] = self.env[sms_template.model].search([], limit=1)
return result
sms_template_id = fields.Many2one('sms.template')
sms_template_id = fields.Many2one('sms.template') # NOTE This should probably be required
lang = fields.Selection(_selection_languages, string='Template Preview Language')
model_id = fields.Many2one('ir.model', related="sms_template_id.model_id")
......@@ -38,6 +38,8 @@ class SMSTemplatePreview(models.TransientModel):
for preview in self:
if preview.model_id:
preview.resource_ref = '%s,%s' % (preview.model_id.model, preview.res_id or 0)
else:
preview.resource_ref = False
def _inverse_resource_ref(self):
for preview in self:
......@@ -49,5 +51,6 @@ class SMSTemplatePreview(models.TransientModel):
# Update res_id and body depending of the resource_ref
if self.resource_ref:
self.res_id = self.resource_ref.id
template = self.sms_template_id.with_context(lang=self.lang)
self.body = template._render_template(template.body, template.model, self.res_id)
if self.sms_template_id:
template = self.sms_template_id.with_context(lang=self.lang)
self.body = template._render_template(template.body, template.model, self.res_id or 0)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment