summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields/relational_fields.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/fields/relational_fields.js')
-rw-r--r--addons/web/static/src/js/fields/relational_fields.js16
1 files changed, 14 insertions, 2 deletions
diff --git a/addons/web/static/src/js/fields/relational_fields.js b/addons/web/static/src/js/fields/relational_fields.js
index c4422285ae7..f2cacb3327f 100644
--- a/addons/web/static/src/js/fields/relational_fields.js
+++ b/addons/web/static/src/js/fields/relational_fields.js
@@ -1033,13 +1033,25 @@ var FieldX2Many = AbstractField.extend({
*/
_onResequence: function (event) {
var self = this;
- _.each(event.data.rowIDs, function (rowID, index) {
+ var rowIDs = event.data.rowIDs.slice();
+ var rowID = rowIDs.pop();
+ var defs = _.map(rowIDs, function (rowID, index) {
var data = {};
data[event.data.handleField] = event.data.offset + index;
- self._setValue({
+ return self._setValue({
operation: 'UPDATE',
id: rowID,
data: data,
+ }, {
+ notifyChange: false,
+ });
+ });
+ $.when.apply($, defs).then(function () {
+ // trigger only once the onchange for parent record
+ self._setValue({
+ operation: 'UPDATE',
+ id: rowID,
+ data: _.object([event.data.handleField], [event.data.offset + rowIDs.length]),
});
});
},