[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.
This commit is contained in:
@@ -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');
|
||||
});
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -396,8 +396,6 @@ var KanbanRenderer = BasicRenderer.extend({
|
||||
*/
|
||||
_renderView: function () {
|
||||
var self = this;
|
||||
var oldWidgets = this.widgets;
|
||||
this.widgets = [];
|
||||
|
||||
// render the kanban view
|
||||
var isGrouped = !!this.state.groupedBy.length;
|
||||
@@ -418,7 +416,6 @@ var KanbanRenderer = BasicRenderer.extend({
|
||||
self.$el.toggleClass('o_kanban_ungrouped', !isGrouped);
|
||||
self.$el.append(fragment);
|
||||
self._toggleNoContentHelper();
|
||||
_.invoke(oldWidgets, 'destroy');
|
||||
if (self._isInDom) {
|
||||
_.invoke(self.widgets, 'on_attach_callback');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user