diff --git a/addons/web/static/src/views/utils.js b/addons/web/static/src/views/utils.js index 2a9c8a5acdf..2ca88ca41f9 100644 --- a/addons/web/static/src/views/utils.js +++ b/addons/web/static/src/views/utils.js @@ -136,7 +136,10 @@ export const computeReportMeasures = (fields, fieldAttrs, activeMeasures) => { if (isInvisible) { continue; } - if (["integer", "float", "monetary"].includes(field.type)) { + if ( + ["integer", "float", "monetary"].includes(field.type) && + field.group_operator !== undefined + ) { measures[fieldName] = field; } } diff --git a/addons/web/static/tests/views/pivot_view_tests.js b/addons/web/static/tests/views/pivot_view_tests.js index 6858076f65b..6349d2b9d3f 100644 --- a/addons/web/static/tests/views/pivot_view_tests.js +++ b/addons/web/static/tests/views/pivot_view_tests.js @@ -110,6 +110,12 @@ QUnit.module("Views", (hooks) => { sortable: true, store: true, }, + price_nonaggregatable: { + string: "Price non-aggregatable", + type: "monetary", + group_operator: undefined, + store: true, + }, }, records: [ { @@ -441,6 +447,26 @@ QUnit.module("Views", (hooks) => { } ); + QUnit.test( + "pivot view do not add number field without group_operator", + async function (assert) { + await makeView({ + type: "pivot", + resModel: "partner", + serverData, + arch: ` + + + `, + }); + await click(target.querySelector(".o_pivot_buttons button.dropdown-toggle")); + assert.containsNone( + target, + ".o_cp_bottom_left .dropdown-menu .dropdown-item:contains(Price non-aggregatable)" + ); + } + ); + QUnit.test("clicking on a cell triggers a doAction", async function (assert) { assert.expect(2);