diff options
| author | Fabien Pinckaers <fp@tinyerp.com> | 2012-12-27 18:28:25 +0100 |
|---|---|---|
| committer | Fabien Pinckaers <fp@tinyerp.com> | 2012-12-27 18:28:25 +0100 |
| commit | aa86fb2bc18fb5b734fceacec12cf87ee8d64d74 (patch) | |
| tree | 57c8972cd3074459230abf739a3b067380d2da21 | |
| parent | fc8ba82578862aeeb436ca1e3c40da3d7f8bf975 (diff) | |
[IMP] custom model allowed
bzr revid: fp@tinyerp.com-20121227172825-lny2fobb5g89edca
| -rw-r--r-- | openerp/addons/base/ir/ir_model.py | 2 | ||||
| -rw-r--r-- | 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. |
