diff --git a/addons/web/static/src/views/list/list_renderer.js b/addons/web/static/src/views/list/list_renderer.js index 57a5b82e372..1070114dcc0 100644 --- a/addons/web/static/src/views/list/list_renderer.js +++ b/addons/web/static/src/views/list/list_renderer.js @@ -934,7 +934,7 @@ export class ListRenderer extends Component { return { offset: list.offset, limit: list.limit, - total: list.count, + total: group.count, onUpdate: async ({ offset, limit }) => { await list.load({ limit, offset }); this.render(true); @@ -1654,7 +1654,7 @@ export class ListRenderer extends Component { } showGroupPager(group) { - return !group.isFolded && group.list.limit < group.list.count; + return !group.isFolded && group.list.limit < group.count; } toggleGroup(group) { diff --git a/addons/web/static/tests/views/list_view_tests.js b/addons/web/static/tests/views/list_view_tests.js index 5281a38d022..50dc15ae453 100644 --- a/addons/web/static/tests/views/list_view_tests.js +++ b/addons/web/static/tests/views/list_view_tests.js @@ -6091,6 +6091,51 @@ QUnit.module("Views", (hooks) => { } ); + QUnit.test( + "pager, grouped, group pager should update after removing a filter", + async function (assert) { + patchWithCleanup(DynamicRecordList, { WEB_SEARCH_READ_COUNT_LIMIT: 3 }); + serverData.models.foo.records = [ + { id: 121, foo: "aaa" }, + { id: 122, foo: "blip" }, + { id: 123, foo: "blip" }, + { id: 124, foo: "blip" }, + { id: 125, foo: "blip" }, + { id: 126, foo: "blip" }, + ]; + await makeView({ + type: "list", + resModel: "foo", + serverData, + arch: '', + searchViewArch: ` + + + + `, + }); + + await toggleFilterMenu(target); + await toggleMenuItem(target, "Foo"); + + await toggleGroupByMenu(target); + await toggleMenuItem(target, "Bar"); + + // expand group + await click(target, "th.o_group_name"); + + assert.containsNone(target, "th.o_group_name .o_pager_counter"); + + // remove filter + await removeFacet(target); + + assert.strictEqual( + $(target).find("th.o_group_name:eq(0) .o_pager_counter").text().trim(), + "1-2 / 6" + ); + } + ); + QUnit.test( "grouped, show only limited records when the list view is initially expanded", async function (assert) {