diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-10-27 17:35:49 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-10-27 17:35:49 +0200 |
| commit | 1304d13c7f59ecdef46b3bd8014f5ae8fe874c45 (patch) | |
| tree | 1515a82af52e6b3bb7f706f7aadb26df471ab181 /addons/web/static/src/js | |
| parent | cb5fd87e7fdab3e3aa559adfd6fbe5392e3ee301 (diff) | |
| parent | 25616b9f2bbca3f03dbde1dc81a57986241c1aab (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.js | 11 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/list_view.js | 7 |
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 |
