[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#38546 X-original-commit: b96bb2a00737339dc53ff06167c1a0cd424ad717 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user