From 979c553918fd529e1c3408c23ca85ef1b4af0203 Mon Sep 17 00:00:00 2001 From: Raphael Collet <rco@openerp.com> Date: Mon, 26 Sep 2016 15:05:36 +0200 Subject: [PATCH] [IMP] base: refactor `_instanciate` on `ir.model` to make it extendable --- odoo/addons/base/ir/ir_model.py | 4 ++-- odoo/modules/registry.py | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/odoo/addons/base/ir/ir_model.py b/odoo/addons/base/ir/ir_model.py index 21e00cae6a08..b57c8de4fd09 100644 --- a/odoo/addons/base/ir/ir_model.py +++ b/odoo/addons/base/ir/ir_model.py @@ -165,7 +165,7 @@ class IrModel(models.Model): @api.model def _instanciate(self, model_data): - """ Instanciate a model class for the custom model given by parameters ``model_data``. """ + """ Return a class for the custom model given by parameters ``model_data``. """ class CustomModel(models.Model): _name = encode(model_data['model']) _description = model_data['name'] @@ -174,7 +174,7 @@ class IrModel(models.Model): _transient = bool(model_data['transient']) __doc__ = model_data['info'] - CustomModel._build_model(self.pool, self._cr) + return CustomModel class IrModelFields(models.Model): diff --git a/odoo/modules/registry.py b/odoo/modules/registry.py index 9be7fa15ae91..946682c241e0 100644 --- a/odoo/modules/registry.py +++ b/odoo/modules/registry.py @@ -276,7 +276,8 @@ class Registry(Mapping): ir_model = env['ir.model'] cr.execute('SELECT * FROM ir_model WHERE state=%s', ('manual',)) for model_data in cr.dictfetchall(): - ir_model._instanciate(model_data) + model_class = ir_model._instanciate(model_data) + model_class._build_model(self, cr) # prepare the setup on all models models = env.values() -- GitLab