[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
|
||||
self._determine_default(cls, name)
|
||||
|
||||
self.reset()
|
||||
|
||||
def _determine_default(self, cls, name):
|
||||
""" Retrieve the default value for `self` in the hierarchy of `cls`, and
|
||||
determine `self.default` and `cls._defaults` accordingly.
|
||||
|
|
|
@ -2929,13 +2929,8 @@ class BaseModel(object):
|
|||
|
||||
@api.model
|
||||
def _prepare_setup(self):
|
||||
""" Prepare the setup of the model and its fields. """
|
||||
""" Prepare the setup of the model. """
|
||||
type(self)._setup_done = False
|
||||
for name, field in self._fields.items():
|
||||
if field.inherited:
|
||||
del self._fields[name]
|
||||
else:
|
||||
field.reset()
|
||||
|
||||
@api.model
|
||||
def _setup_base(self, partial):
|
||||
|
@ -2949,12 +2944,21 @@ class BaseModel(object):
|
|||
for parent in cls._inherits:
|
||||
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
|
||||
cls._init_manual_fields(self._cr, partial)
|
||||
|
||||
# retrieve inherited fields
|
||||
cls._init_inherited_fields()
|
||||
|
||||
# prepare the setup of fields
|
||||
for field in cls._fields.itervalues():
|
||||
field.reset()
|
||||
|
||||
cls._setup_done = True
|
||||
|
||||
@api.model
|
||||
|
|
Loading…
Reference in New Issue