# Query manual fields for all models at once and save them on the registry
# so the initialization code for each model does not have to do it
# one model at a time.
- pool.fields_by_model = {'so_this_dict_is_not_empty': {}}
+ pool.fields_by_model = {}
cr.execute('SELECT * FROM ir_model_fields WHERE state=%s', ('manual',))
for field in cr.dictfetchall():
pool.fields_by_model.setdefault(field['model'], []).append(field)
# The query won't be valid for models created later (i.e. custom model
# created after the registry has been loaded), so empty its result.
- pool.fields_by_model = {}
+ pool.fields_by_model = None
cr.commit()
self._init = True
self._init_parent = {}
self._assertion_report = assertion_report.assertion_report()
+ self.fields_by_model = None
# modules fully loaded (maintained during init phase by `loading` module)
self._init_modules = set()
# Check the query is already done for all modules of if we need to
# do it ourselves.
- if self.pool.fields_by_model:
+ if self.pool.fields_by_model is not None:
manual_fields = self.pool.fields_by_model.get(self._name, [])
else:
cr.execute('SELECT * FROM ir_model_fields WHERE model=%s AND state=%s', (self._name, 'manual'))