From aa86fb2bc18fb5b734fceacec12cf87ee8d64d74 Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Thu, 27 Dec 2012 18:28:25 +0100 Subject: [PATCH] [IMP] custom model allowed bzr revid: fp@tinyerp.com-20121227172825-lny2fobb5g89edca --- openerp/addons/base/ir/ir_model.py | 2 +- openerp/osv/orm.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/openerp/addons/base/ir/ir_model.py b/openerp/addons/base/ir/ir_model.py index ff43a15692f..ed6f843f898 100644 --- a/openerp/addons/base/ir/ir_model.py +++ b/openerp/addons/base/ir/ir_model.py @@ -199,7 +199,7 @@ class ir_model(osv.osv): def instanciate(self, cr, user, model, context=None): class x_custom_model(osv.osv): - pass + _custom = True x_custom_model._name = model x_custom_model._module = False a = x_custom_model.create_instance(self.pool, cr) diff --git a/openerp/osv/orm.py b/openerp/osv/orm.py index 6d78d7fd26c..6056e405b78 100644 --- a/openerp/osv/orm.py +++ b/openerp/osv/orm.py @@ -629,7 +629,8 @@ class MetaModel(type): self._module = module_name # Remember which models to instanciate for this module. - self.module_to_models.setdefault(self._module, []).append(self) + if not self._custom: + self.module_to_models.setdefault(self._module, []).append(self) # Definition of log access columns, automatically added to models if @@ -666,6 +667,7 @@ class BaseModel(object): _name = None _columns = {} _constraints = [] + _custom = False _defaults = {} _rec_name = None _parent_name = 'parent_id' @@ -942,7 +944,8 @@ class BaseModel(object): # managed by the metaclass. module_model_list = MetaModel.module_to_models.setdefault(cls._module, []) if cls not in module_model_list: - module_model_list.append(cls) + if not cls._custom: + module_model_list.append(cls) # Since we don't return an instance here, the __init__ # method won't be called.