summaryrefslogtreecommitdiff
path: root/addons/web/static/tests
diff options
context:
space:
mode:
authorLucas Perais (lpe) <lpe@odoo.com>2018-04-13 10:49:35 +0200
committerLucas Perais (lpe) <lpe@odoo.com>2018-04-17 13:43:46 +0200
commitdf02dc37fd2febd3fc899792ee25c80c0149d255 (patch)
tree99ba801510ba04076ba247e04c9a84574054511e /addons/web/static/tests
parentb5d026be7f68f092fdded58429097f02d3fc44ae (diff)
[FIX] web: pivot: correctly save and restore groupbys on rows and cols
On a pivot view expand a field in column another one in row Then put a domain in the search view Save the whole thing (ir.filter) as favorite Before this commit, the ir.filter was not saved the right way when a domain was present (Let alone its restoration) This was because of - the internal default groupbys of the pivot model was not updated, and what we got in the params was overwritten by what existed before - a slight typo in the code made the row updated with the col values OPW 1835865 OPW 1829925 closes #24215
Diffstat (limited to 'addons/web/static/tests')
-rw-r--r--addons/web/static/tests/views/pivot_tests.js41
1 files changed, 41 insertions, 0 deletions
diff --git a/addons/web/static/tests/views/pivot_tests.js b/addons/web/static/tests/views/pivot_tests.js
index 3e77d7aa8b9..198fd0189ae 100644
--- a/addons/web/static/tests/views/pivot_tests.js
+++ b/addons/web/static/tests/views/pivot_tests.js
@@ -960,4 +960,45 @@ QUnit.module('Views', {
pivot.destroy();
});
+
+ QUnit.test('Row and column groupbys plus a domain', function (assert) {
+ assert.expect(3);
+
+ var pivot = createView({
+ View: PivotView,
+ model: "partner",
+ data: this.data,
+ arch: '<pivot>' +
+ '<field name="foo" type="measure"/>' +
+ '</pivot>',
+ });
+
+ // Set a column groupby
+ pivot.$('thead .o_pivot_header_cell_closed').click();
+ pivot.$('.o_field_selection li[data-field=customer] a').click();
+
+ // Set a Row groupby
+ pivot.$('tbody .o_pivot_header_cell_closed').click();
+ pivot.$('.o_pivot_field_menu li[data-field=product_id] a').click();
+
+ // Set a domain
+ pivot.update({domain: [['product_id', '=', 41]]});
+
+ var expectedContext = {pivot_column_groupby: ['customer'],
+ pivot_measures: ['foo'],
+ pivot_row_groupby: ['product_id']};
+
+ // Mock 'save as favorite'
+ assert.deepEqual(pivot.getContext(), expectedContext,
+ 'The pivot view should have the right context');
+
+ var $xpadHeader = pivot.$('tbody .o_pivot_header_cell_closed[data-original-title=Product]');
+ assert.equal($xpadHeader.length, 1,
+ 'There should be only one product line because of the domain');
+
+ assert.equal($xpadHeader.text(), 'xpad',
+ 'The product should be the right one');
+
+ pivot.destroy();
+ });
});});