summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
authorAaron Bohy <aab@odoo.com>2017-08-22 08:45:52 +0200
committerAaron Bohy <aab@odoo.com>2017-08-24 07:20:22 +0200
commitacb9d60d944f21606ee4a9decb752a7a24c65d9d (patch)
tree06e1cfa05d4845d7c94e8e07df06edaf0c370a4e /addons/web/static/src/js
parentdb0810dc6e063ff1b3d6dd50f13844ed812d4f1e (diff)
[FIX] web: Pivot: handle __count__ measure
The former implementation of the Pivot view used __count__ as magic field to display the number of records in groups. However, in filters defined in xml, __count is used instead of __count__, so it crashed when such filters were activated. With the new views, we made those filters work by using __count. However, if a user saved filters using __count__ at that time as favorite, activating them in the new views produces a crash as well. This rev. adds a compatibility layer to ensure that the pivot view handles both __count__ and __count measures uniformly.
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_model.js13
1 files changed, 12 insertions, 1 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 d74af7fee22..13275926c02 100644
--- a/addons/web/static/src/js/views/pivot/pivot_model.js
+++ b/addons/web/static/src/js/views/pivot/pivot_model.js
@@ -222,6 +222,17 @@ var PivotModel = AbstractModel.extend({
* @returns {Deferred}
*/
load: function (params) {
+ // In the preview implementation of the pivot view (a.k.a. version 2),
+ // the virtual field used to display the number of records was named
+ // __count__, whereas __count is actually the one used in xml. So
+ // basically, activating a filter specifying __count as measures crashed.
+ // Unfortunately, as __count__ was used in the JS, all filters saved as
+ // favorite at that time were saved with __count__, and not __count.
+ // So in order the make them still work with the new implementation, we
+ // simply rename __count__ into __count at this unique entry point.
+ var measures = _.map(params.measures, function (measure) {
+ return measure === '__count__' ? '__count' : measure;
+ });
this.initialDomain = params.domain;
this.initialRowGroupBys = params.rowGroupBys;
this.fields = params.fields;
@@ -231,7 +242,7 @@ var PivotModel = AbstractModel.extend({
context: _.extend({}, session.user_context, params.context),
groupedBy: params.groupedBy,
colGroupBys: params.colGroupBys,
- measures: params.measures,
+ measures: measures,
sorted_column: {},
};
this.defaultGroupedBy = params.groupedBy;