diff options
Diffstat (limited to 'addons/web/static/src/js/fields/relational_fields.js')
| -rw-r--r-- | addons/web/static/src/js/fields/relational_fields.js | 16 |
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]), }); }); }, |
