summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2019-03-06 13:11:28 +0000
committerNicolas Lempereur <nle@odoo.com>2019-03-06 17:04:42 +0000
commitb8d4fe6d386768a9b1b638358bc95a4a7575e3f9 (patch)
treeaa16e8fe16dbe969396585f8c3039bc37d41d53e /addons/web/static/src
parenta26496b6e79153212973c55f20431df82c3d827b (diff)
[FIX] web: keep col group by on 2nd reload+after 0 result
In 11.0 f8b38f64d improved the column group by managment when reloading several times by having the same "groupbys" dictionaries between the pivot model instance and the header menu. This has been reverted in 12.0 (with c6e7adfb95d) because the following pivot tests failed with the change: - 'rendering of pivot view with comparison' - 'export data in excel with comparison' The failure is because now that the "groupbys" dictionaries are the same object, the truncated dictionary of a header truncate the one of the model instance. So if we search something that has no results, then something with results, the groupbys could be lost. This behavior has no reason to be and is changed in 11.0 with #31644, this commit is the forward-port of f8b38f64d and #31644. closes #31627 Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_model.js18
1 files changed, 2 insertions, 16 deletions
diff --git a/addons/web/static/src/js/views/pivot/pivot_model.js b/addons/web/static/src/js/views/pivot/pivot_model.js
index 88d0aee83b8..5758b906421 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -440,12 +440,10 @@ var PivotModel = AbstractModel.extend({
// if we don't have the key 'groupBy' in params. In that case,
// we want to have the full open state for the groupbys.
self._updateTree(old_row.root, self.data.main_row.root);
- self._updateMainGroupBys(old_row, self.data.main_row);
}
if (!('pivot_column_groupby' in (params.context || {}))) {
self._updateTree(old_col.root, self.data.main_col.root);
- self._updateMainGroupBys(old_col, self.data.main_col);
}
});
},
@@ -986,7 +984,8 @@ var PivotModel = AbstractModel.extend({
});
var index = 0;
- var rowGroupBys = !_.isEmpty(this.data.groupedBy) ? this.data.groupedBy : this.initialRowGroupBys;
+ var rowGroupBys = !_.isEmpty(this.data.groupedBy) ? this.data.groupedBy : this.initialRowGroupBys.slice();
+ this.data.groupedBy = rowGroupBys;
var colGroupBys = this.data.colGroupBys;
var dataPoint, row, col, attrs, cell_value;
var main_row_header, main_col_header;
@@ -1119,19 +1118,6 @@ var PivotModel = AbstractModel.extend({
}
},
/**
- * Updates the groupBys that the main[row | col] holds
- *
- * @private
- * @param {Object} old: The main abstract header before reload
- * @param {Object} main: The main abstract header after reload
- *
- */
- _updateMainGroupBys: function (old, main) {
- var new_groupby_length = this._getHeaderDepth(main.root) - 1;
- var new_groupby_list = old.root.groupbys.slice(0, new_groupby_length);
- main.root.groupbys = new_groupby_list;
- },
- /**
* @param {Object} old_tree
* @param {Object} new_tree
*/