From e8796e63022cd6bf3f2babfeb2133ec7ad05cca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 7 Dec 2021 09:45:25 +0000 Subject: [PATCH] [IMP] sms: add precompute on fields As body and composition_mode are required, an override of create has been added to ensure they have a value. Indeed compute are computed after creation which leads to required not being satisfied. Now that precompute[1] are available this code can be safely replaced. Task-2709581 [1] https://github.com/odoo/odoo/commit/d04a5b5c8c7dc13e4e911a29d1944e90587e2883 Part-of: odoo/odoo#80947 --- addons/sms/wizard/sms_composer.py | 20 ++------------------ 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/addons/sms/wizard/sms_composer.py b/addons/sms/wizard/sms_composer.py index e2c7243a2e9..3837f697f56 100644 --- a/addons/sms/wizard/sms_composer.py +++ b/addons/sms/wizard/sms_composer.py @@ -35,7 +35,7 @@ class SendSMS(models.TransientModel): ('numbers', 'Send to numbers'), ('comment', 'Post on a document'), ('mass', 'Send SMS in batch')], string='Composition Mode', - compute='_compute_composition_mode', readonly=False, required=True, store=True) + compute='_compute_composition_mode', precompute=True, readonly=False, required=True, store=True) res_model = fields.Char('Document Model Name') res_id = fields.Integer('Document ID') res_ids = fields.Char('Document IDs') @@ -71,7 +71,7 @@ class SendSMS(models.TransientModel): template_id = fields.Many2one('sms.template', string='Use Template', domain="[('model', '=', res_model)]") body = fields.Text( 'Message', compute='_compute_body', - readonly=False, store=True, required=True) + precompute=True, readonly=False, store=True, required=True) @api.depends('res_ids_count', 'active_domain_count') @api.depends_context('sms_composition_mode') @@ -168,22 +168,6 @@ class SendSMS(models.TransientModel): elif record.template_id: record.body = record.template_id.body - # ------------------------------------------------------------ - # CRUD - # ------------------------------------------------------------ - - @api.model - def create(self, values): - # TDE FIXME: currently have to compute manually to avoid required issue, waiting VFE branch - if not values.get('body') or not values.get('composition_mode'): - values_wdef = self._add_missing_default_values(values) - cache_composer = self.new(values_wdef) - cache_composer._compute_body() - cache_composer._compute_composition_mode() - values['body'] = values.get('body') or cache_composer.body - values['composition_mode'] = values.get('composition_mode') or cache_composer.composition_mode - return super(SendSMS, self).create(values) - # ------------------------------------------------------------ # Actions # ------------------------------------------------------------