From 863de16a9189364d456ff36fa748ed85c8a80144 Mon Sep 17 00:00:00 2001 From: Mathieu Duckerts-Antoine Date: Tue, 12 Mar 2019 13:23:06 +0000 Subject: [FIX] web: correctly update this.widgets Old subwidgets of a widget inhereriting from BasicRender were not correctly destroyed. This was the cause of various problems when cycling over this.widgets. --- addons/web/static/src/js/views/basic/basic_renderer.js | 3 +++ 1 file changed, 3 insertions(+) (limited to 'addons/web/static/src/js/views/basic/basic_renderer.js') diff --git a/addons/web/static/src/js/views/basic/basic_renderer.js b/addons/web/static/src/js/views/basic/basic_renderer.js index 2bc63f47073..6f5fa263ba8 100644 --- a/addons/web/static/src/js/views/basic/basic_renderer.js +++ b/addons/web/static/src/js/views/basic/basic_renderer.js @@ -510,12 +510,15 @@ var BasicRenderer = AbstractRenderer.extend({ var oldAllFieldWidgets = this.allFieldWidgets; this.allFieldWidgets = {}; // TODO maybe merging allFieldWidgets and allModifiersData into "nodesData" in some way could be great this.allModifiersData = []; + var oldWidgets = this.widgets; + this.widgets = []; return this._renderView().then(function () { _.each(oldAllFieldWidgets, function (recordWidgets) { _.each(recordWidgets, function (widget) { widget.destroy(); }); }); + _.invoke(oldWidgets, 'destroy'); }); }, /** -- cgit v1.2.3