diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index f3aa9a61703..86749849053 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -459,8 +459,32 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# self.compute_aggregates(); reloaded.resolve(); })); + this.do_push_state({ + page: this.page, + limit: this._limit, + }); return reloaded.promise(); }, + + do_load_state: function(state) { + var reload = false; + if (state.page && this.page !== state.page) { + this.page = state.page; + reload = true; + } + if (state.limit) { + if (_.isString(state.limit)) { + state.limit = null; + } + if (state.limit !== this._limit) { + this._limit = state.limit; + reload = true; + } + } + if (reload) { + this.reload_content(); + } + }, /** * Handler for the result of eval_domain_and_context, actually perform the * searching diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 76082f3318b..579027a360a 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -1067,7 +1067,6 @@ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ }, do_show: function () { this.$element.show(); - this.do_push_state({}); }, do_hide: function () { this.$element.hide();