From a6c40de0f93b3671eb8e994d48709eb268be044e Mon Sep 17 00:00:00 2001 From: Xavier-Do Date: Tue, 19 Oct 2021 11:37:31 +0000 Subject: [PATCH] [IMP] base: batch creation of custom models Part-of: odoo/odoo#78514 --- odoo/addons/base/models/ir_model.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/odoo/addons/base/models/ir_model.py b/odoo/addons/base/models/ir_model.py index 8d3cb9530d9..8b08d81702f 100644 --- a/odoo/addons/base/models/ir_model.py +++ b/odoo/addons/base/models/ir_model.py @@ -322,15 +322,18 @@ class IrModel(models.Model): self.pool.setup_models(self._cr) return res - @api.model - def create(self, vals): - res = super(IrModel, self).create(vals) - if vals.get('state', 'manual') == 'manual': + @api.model_create_multi + def create(self, vals_list): + res = super(IrModel, self).create(vals_list) + manual_models = [ + vals['model'] for vals in vals_list if vals.get('state', 'manual') == 'manual' + ] + if manual_models: # setup models; this automatically adds model in registry self.flush() self.pool.setup_models(self._cr) # update database schema - self.pool.init_models(self._cr, [vals['model']], dict(self._context, update_custom_fields=True)) + self.pool.init_models(self._cr, manual_models, dict(self._context, update_custom_fields=True)) return res @api.model