diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 6be83e7af52..f1bd7c4325e 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -132,6 +132,15 @@ openerp.web.list_editable = function (instance) { var self = this; // tree/@editable takes priority on everything else if present. var result = this._super(data, grouped); + + // In case current editor was started previously, also has to run + // when toggling from editable to non-editable in case form widgets + // have setup global behaviors expecting themselves to exist + // somehow. + this.editor.destroy(); + // Editor is not restartable due to formview not being restartable + this.editor = this.make_editor(); + if (this.editable()) { this.$el.addClass('oe_list_editable'); // FIXME: any hook available to ensure this is only done once? @@ -143,10 +152,6 @@ openerp.web.list_editable = function (instance) { e.preventDefault(); self.cancel_edition(); }); - this.editor.destroy(); - // Editor is not restartable due to formview not being - // restartable - this.editor = this.make_editor(); var editor_ready = this.editor.prependTo(this.$el) .done(this.proxy('setup_events'));