summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_model.js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2018-11-30 08:13:48 +0000
committerGéry Debongnie <ged@odoo.com>2018-11-30 08:53:31 +0000
commitf6c104d2e55baa11a9316861e7f4f10784c6f093 (patch)
tree0644b01836c25329bd5c576c020f2f27c95a3916 /addons/web/static/src/js/views/basic/basic_model.js
parentba9b5ce12b617ca9fcc99533f613468a0987ac58 (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.js4
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;
}