diff options
| author | Géry Debongnie <ged@odoo.com> | 2018-11-30 08:13:48 +0000 |
|---|---|---|
| committer | Géry Debongnie <ged@odoo.com> | 2018-11-30 08:53:31 +0000 |
| commit | f6c104d2e55baa11a9316861e7f4f10784c6f093 (patch) | |
| tree | 0644b01836c25329bd5c576c020f2f27c95a3916 /addons/web/static/src/js/views/basic/basic_model.js | |
| parent | ba9b5ce12b617ca9fcc99533f613468a0987ac58 (diff) | |
[IMP] web: do not eval modifiers if not necessary
Before this commit, the web client evaluated all modifiers
(readonly/invisible/required) in some cases, even if it only needed one
of them. This is clearly not optimal, and I even suppose that for large o2m,
it could even have a noticeable effect on web client perceived speed
This commit simply make sure that we evaluate only what we need in those
cases. Note that it is not really a testable improvement, hence the
lack of tests.
closes odoo/odoo#29171
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_model.js')
| -rw-r--r-- | addons/web/static/src/js/views/basic/basic_model.js | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js index 53aa2e56c5a..f92bf7b6778 100644 --- a/addons/web/static/src/js/views/basic/basic_model.js +++ b/addons/web/static/src/js/views/basic/basic_model.js @@ -3507,7 +3507,7 @@ var BasicModel = AbstractModel.extend({ (record.fieldsInfo[viewType || record.viewType][fieldName]); if (fieldInfo) { var rawModifiers = fieldInfo.modifiers || {}; - var modifiers = this._evalModifiers(record, rawModifiers); + var modifiers = this._evalModifiers(record, _.pick(rawModifiers, 'readonly')); return modifiers.readonly && !fieldInfo.force_save; } else { return false; @@ -3559,7 +3559,7 @@ var BasicModel = AbstractModel.extend({ var field = element.fields[fieldName]; var fieldInfo = element.fieldsInfo[element.viewType][fieldName]; var rawModifiers = fieldInfo.modifiers || {}; - var modifiers = self._evalModifiers(record, rawModifiers); + var modifiers = self._evalModifiers(record, _.pick(rawModifiers, 'required')); if (modifiers.required && !self._isFieldSet(recordData[fieldName], field.type)) { isValid = false; } |
