diff --git a/addons/web/static/src/views/relational_model.js b/addons/web/static/src/views/relational_model.js index 4ced79c2dff..6f67c5bf67b 100644 --- a/addons/web/static/src/views/relational_model.js +++ b/addons/web/static/src/views/relational_model.js @@ -2223,8 +2223,8 @@ export class DynamicGroupList extends DynamicList { } async load(params = {}) { - this.limit = params.limit || this.limit; - this.offset = params.offset || this.offset; + this.limit = params.limit === undefined ? this.limit : params.limit; + this.offset = params.offset === undefined ? this.offset : params.offset; /** @type {[Group, number][]} */ const previousGroups = this.groups.map((g, i) => [g, i]); this.groups = await this._loadGroups(); diff --git a/addons/web/static/tests/views/list_view_tests.js b/addons/web/static/tests/views/list_view_tests.js index f40c7ed87a6..aaa5f421f0d 100644 --- a/addons/web/static/tests/views/list_view_tests.js +++ b/addons/web/static/tests/views/list_view_tests.js @@ -15045,4 +15045,20 @@ QUnit.module("Views", (hooks) => { assert.containsN(target, ".o_data_row:first-child td.o_list_button", 1); await click(target, ".o_data_row:first-child td.o_list_button"); }); + + QUnit.test("group by going to next page then back to first", async function (assert) { + await makeView({ + type: "list", + resModel: "foo", + serverData, + arch: '', + groupBy: ["bar"], + }); + + assert.deepEqual([...getPagerValue(target), getPagerLimit(target)], [1, 2]); + await pagerNext(target); + assert.deepEqual([...getPagerValue(target), getPagerLimit(target)], [2, 2]); + await pagerPrevious(target); + assert.deepEqual([...getPagerValue(target), getPagerLimit(target)], [1, 2]); + }); });