diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index a24da196b68..2ab1152a0fa 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -471,6 +471,9 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# }); return reloaded.promise(); }, + reload: function () { + return this.reload_content(); + }, do_load_state: function(state) { var reload = false; diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index e4a4668ae4a..072d4ae33c1 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -864,7 +864,10 @@ session.web.Sidebar = session.web.Widget.extend({ additional_context); result.result.flags = result.result.flags || {}; result.result.flags.new_window = true; - self.do_action(result.result); + self.do_action(result.result, function () { + // reload view + self.widget_parent.reload(); + }); }); }); }, @@ -1188,7 +1191,14 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ on_sidebar_view_log: function() { }, sidebar_context: function () { - return $.Deferred().resolve({}).promise(); + return $.when(); + }, + /** + * Asks the view to reload itself, if the reloading is asynchronous should + * return a {$.Deferred} indicating when the reloading is done. + */ + reload: function () { + return $.when(); } });