summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/views/basic/basic_renderer.js
diff options
context:
space:
mode:
authorGéry Debongnie <ged@odoo.com>2017-05-23 17:20:43 +0200
committerGéry Debongnie <ged@odoo.com>2017-05-24 11:37:38 +0200
commita3441cfb566f7274e049ec3eab803a909bd40f5a (patch)
tree8b4b2f2497d443eb6bcd5da2093a7e3a966792f9 /addons/web/static/src/js/views/basic/basic_renderer.js
parentfc82e1e40abd8092e6a044dc4e78432beffb5149 (diff)
[FIX] web: handle 'required' attribute in x2many+onchange
Before doing an onchange in a x2many, the basic model tries to evaluate if the line is valid or not. In that computation, we used the field.required property instead of using the required modifier. This commit had to move the modifier handling from the BasicRenderer to the BasicModel, in order to use it in the _isX2ManyValid method.
Diffstat (limited to 'addons/web/static/src/js/views/basic/basic_renderer.js')
-rw-r--r--addons/web/static/src/js/views/basic/basic_renderer.js22
1 files changed, 2 insertions, 20 deletions
diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js
index 907ea7ddc07..2e36a4cac55 100644
--- a/addons/web/static/src/js/views/basic/basic_renderer.js
+++ b/addons/web/static/src/js/views/basic/basic_renderer.js
@@ -269,22 +269,6 @@ var BasicRenderer = AbstractRenderer.extend({
return widget.isValid() && (widget.isSet() || !modifiers.required);
},
/**
- * Updates the modifiers evaluation associated to a given modifiers data and
- * a given record. This only updates the modifiers values. To see associated
- * DOM updates: @see _updateAllModifiers @see _applyModifiers.
- *
- * @private
- * @param {Object} modifiersData
- * @param {Object} record
- */
- _computeModifiers: function (modifiersData, record) {
- var evalContext = record.evalContext;
- modifiersData.evaluatedModifiers[record.id]
- = _.mapObject(modifiersData.modifiers, function (modifier) {
- return new Domain(modifier, evalContext).compute(evalContext);
- });
- },
- /**
* Destroys a given widget associated to the given record and removes it
* from internal referencing.
*
@@ -342,7 +326,6 @@ var BasicRenderer = AbstractRenderer.extend({
* record. This allows nodes that will produce an AbstractField instance
* to have their modifiers registered before this field creation as we
* need the readonly modifier to be able to instantiate the AbstractField.
- * (@see _computeModifiers).
*
* - On additional registrations, if the node was already registered but the
* record is different, we evaluate the modifiers for this record and
@@ -399,7 +382,7 @@ var BasicRenderer = AbstractRenderer.extend({
// Evaluate if necessary
if (!modifiersData.evaluatedModifiers[record.id]) {
- this._computeModifiers(modifiersData, record);
+ modifiersData.evaluatedModifiers[record.id] = record.evalModifiers(modifiersData.modifiers);
}
// Element might not be given yet (a second call to the function can
@@ -569,7 +552,6 @@ var BasicRenderer = AbstractRenderer.extend({
* 2) Updates the rendering of the view elements associated to the given
* record to match the new modifiers.
*
- * @see _computeModifiers
* @see _applyModifiers
*
* @private
@@ -582,7 +564,7 @@ var BasicRenderer = AbstractRenderer.extend({
var defs = [];
this.defs = defs; // Potentially filled by widget rerendering
_.each(this.allModifiersData, function (modifiersData) {
- self._computeModifiers(modifiersData, record);
+ modifiersData.evaluatedModifiers[record.id] = record.evalModifiers(modifiersData.modifiers);
self._applyModifiers(modifiersData, record);
});
delete this.defs;