diff options
| author | Aaron Bohy <aab@odoo.com> | 2019-01-11 14:36:13 +0000 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2019-01-11 14:36:13 +0000 |
| commit | dec9f7c4cec68863c2d4fa82235e3fd2b6def4d5 (patch) | |
| tree | 0c584690c2264702397df8f0c773f8f4ba37e2ee /addons/web/static/src | |
| parent | c99e1facf92ba419ae7c761acbe10bc1078ebdaa (diff) | |
[FIX] web: one2many list: quickly switch between pages
Before this rev., a crash might occur when the user quickly
switched twice between pages (e.g. go to page 2, then page 3) on a
slow network.
In the given example, when data of page 2 returned, the list was
re-rendered. Unfortunately, the offset of that list' datapoint was
already changed due to the switch to page 3, meaning that the view
tried to render a page that wasn't loaded yet, leading to a crash
if there were modifiers to evaluate, or to empty records being
displayed.
This rev. ensures that the view is rendered with the data of the
page it expects.
closes odoo/odoo#30150
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/field_manager_mixin.js | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/addons/web/static/src/js/views/field_manager_mixin.js b/addons/web/static/src/js/views/field_manager_mixin.js index 0bc1b5acfce..2b38ca4403d 100644 --- a/addons/web/static/src/js/views/field_manager_mixin.js +++ b/addons/web/static/src/js/views/field_manager_mixin.js @@ -130,8 +130,10 @@ var FieldManagerMixin = { if ('offset' in data) { params.offset = data.offset; } - this.model.reload(data.id, params).then(function (db_id) { - data.on_success(self.model.get(db_id)); + this.mutex.exec(function () { + return self.model.reload(data.id, params).then(function (db_id) { + data.on_success(self.model.get(db_id)); + }); }); }, /** |
