summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/framework/data.js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-10-27 18:23:44 +0200
committerChristophe Simonis <chs@odoo.com>2016-10-27 18:23:44 +0200
commitea479ce6f3ffdcf36c5f918b6ce68888e42a56ce (patch)
treeaddf64e3f038bf53c293cc7ba1e81fd0b9413b32 /addons/web/static/src/js/framework/data.js
parent68b1c5c1fa643e99fd5e597949c39e222477dcab (diff)
parent3bb022d57c43c51a5fd4be39e4123b1206db4782 (diff)
[MERGE] forward port branch 10.0 up to 3bb022d
Diffstat (limited to 'addons/web/static/src/js/framework/data.js')
-rw-r--r--addons/web/static/src/js/framework/data.js11
1 files changed, 6 insertions, 5 deletions
diff --git a/addons/web/static/src/js/framework/data.js b/addons/web/static/src/js/framework/data.js
index a350dadb59e..c160ebaf539 100644
--- a/addons/web/static/src/js/framework/data.js
+++ b/addons/web/static/src/js/framework/data.js
@@ -793,18 +793,19 @@ var BufferedDataSet = DataSetStatic.extend({
var def = $.Deferred();
this.mutex.exec(function () {
var dirty = false;
- _.each(data, function (v, k) {
- if (!_.isEqual(v, cached.values[k])) {
+ // _.each is broken if a field "length" is present
+ for (var k in data) {
+ if (!_.isEqual(data[k], cached.values[k])) {
dirty = true;
- if (_.isEqual(v, cached.from_read[k])) { // clean changes
+ if (_.isEqual(data[k], cached.from_read[k])) { // clean changes
delete cached.changes[k];
} else {
- cached.changes[k] = v;
+ cached.changes[k] = data[k];
}
} else {
delete data[k];
}
- });
+ }
self._update_cache(id, options);
if (dirty) {