[IMP] models: prepare the setup of fields at one place only
This commit is contained in:
parent
54c655cb71
commit
431f8de815
|
@ -336,8 +336,6 @@ class Field(object):
|
||||||
# determine self.default and cls._defaults in a consistent way
|
# determine self.default and cls._defaults in a consistent way
|
||||||
self._determine_default(cls, name)
|
self._determine_default(cls, name)
|
||||||
|
|
||||||
self.reset()
|
|
||||||
|
|
||||||
def _determine_default(self, cls, name):
|
def _determine_default(self, cls, name):
|
||||||
""" Retrieve the default value for `self` in the hierarchy of `cls`, and
|
""" Retrieve the default value for `self` in the hierarchy of `cls`, and
|
||||||
determine `self.default` and `cls._defaults` accordingly.
|
determine `self.default` and `cls._defaults` accordingly.
|
||||||
|
|
|
@ -2929,13 +2929,8 @@ class BaseModel(object):
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _prepare_setup(self):
|
def _prepare_setup(self):
|
||||||
""" Prepare the setup of the model and its fields. """
|
""" Prepare the setup of the model. """
|
||||||
type(self)._setup_done = False
|
type(self)._setup_done = False
|
||||||
for name, field in self._fields.items():
|
|
||||||
if field.inherited:
|
|
||||||
del self._fields[name]
|
|
||||||
else:
|
|
||||||
field.reset()
|
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _setup_base(self, partial):
|
def _setup_base(self, partial):
|
||||||
|
@ -2949,12 +2944,21 @@ class BaseModel(object):
|
||||||
for parent in cls._inherits:
|
for parent in cls._inherits:
|
||||||
self.env[parent]._setup_base(partial)
|
self.env[parent]._setup_base(partial)
|
||||||
|
|
||||||
|
# remove inherited fields from cls._fields
|
||||||
|
for name, field in cls._fields.items():
|
||||||
|
if field.inherited:
|
||||||
|
del cls._fields[name]
|
||||||
|
|
||||||
# retrieve custom fields
|
# retrieve custom fields
|
||||||
cls._init_manual_fields(self._cr, partial)
|
cls._init_manual_fields(self._cr, partial)
|
||||||
|
|
||||||
# retrieve inherited fields
|
# retrieve inherited fields
|
||||||
cls._init_inherited_fields()
|
cls._init_inherited_fields()
|
||||||
|
|
||||||
|
# prepare the setup of fields
|
||||||
|
for field in cls._fields.itervalues():
|
||||||
|
field.reset()
|
||||||
|
|
||||||
cls._setup_done = True
|
cls._setup_done = True
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
|
|
Loading…
Reference in New Issue