summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-10-27 17:35:49 +0200
committerChristophe Simonis <chs@odoo.com>2016-10-27 17:35:49 +0200
commit1304d13c7f59ecdef46b3bd8014f5ae8fe874c45 (patch)
tree1515a82af52e6b3bb7f706f7aadb26df471ab181 /addons/web/static/src/js
parentcb5fd87e7fdab3e3aa559adfd6fbe5392e3ee301 (diff)
parent25616b9f2bbca3f03dbde1dc81a57986241c1aab (diff)
[MERGE] forward port branch 9.0 up to 25616b9
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/framework/data.js11
-rw-r--r--addons/web/static/src/js/views/list_view.js7
2 files changed, 10 insertions, 8 deletions
diff --git a/addons/web/static/src/js/framework/data.js b/addons/web/static/src/js/framework/data.js
index 577a1ec42f0..517cae64c31 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) {
diff --git a/addons/web/static/src/js/views/list_view.js b/addons/web/static/src/js/views/list_view.js
index 1a916843e6d..df6274ef12d 100644
--- a/addons/web/static/src/js/views/list_view.js
+++ b/addons/web/static/src/js/views/list_view.js
@@ -470,11 +470,12 @@ var ListView = View.extend({
self.records.remove(record);
return;
}
- _.each(values, function (value, key) {
+ // _.each is broken if a field "length" is present
+ for (var key in values) {
if (fields[key] && fields[key].type === 'many2many')
record.set(key + '__display', false, {silent: true});
- record.set(key, value, {silent: true});
- });
+ record.set(key, values[key], {silent: true});
+ }
record.trigger('change', record);
/* When a record is reloaded, there is a rendering lag because of the addition/suppression of