summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/views/graph/graph_view.js16
-rw-r--r--addons/web/static/src/js/views/pivot/pivot_view.js12
2 files changed, 23 insertions, 5 deletions
diff --git a/addons/web/static/src/js/views/graph/graph_view.js b/addons/web/static/src/js/views/graph/graph_view.js
index 5293409cb8b..759817c898f 100644
--- a/addons/web/static/src/js/views/graph/graph_view.js
+++ b/addons/web/static/src/js/views/graph/graph_view.js
@@ -43,7 +43,7 @@ var GraphView = AbstractView.extend({
let measure;
const measures = {};
const measureStrings = {};
- const groupBys = [];
+ let groupBys = [];
const groupableFields = {};
this.fields.__count__ = { string: _t("Count"), type: 'integer' };
@@ -100,6 +100,20 @@ var GraphView = AbstractView.extend({
}
}
+ // Remove invisible fields from the measures
+ this.arch.children.forEach(field => {
+ let fieldName = field.attrs.name;
+ if (field.attrs.invisible && py.eval(field.attrs.invisible)) {
+ groupBys = groupBys.filter(groupBy => groupBy !== fieldName);
+ if (fieldName in groupableFields) {
+ delete groupableFields[fieldName];
+ }
+ if (!additionalMeasures.includes(fieldName)) {
+ delete measures[fieldName];
+ }
+ }
+ });
+
const sortedMeasures = Object.values(measures).sort((a, b) => {
const descA = a.description.toLowerCase();
const descB = b.description.toLowerCase();
diff --git a/addons/web/static/src/js/views/pivot/pivot_view.js b/addons/web/static/src/js/views/pivot/pivot_view.js
index 7c021d6e3c0..ea3ab9c7442 100644
--- a/addons/web/static/src/js/views/pivot/pivot_view.js
+++ b/addons/web/static/src/js/views/pivot/pivot_view.js
@@ -67,11 +67,15 @@ odoo.define('web.PivotView', function (require) {
this.arch.children.forEach(field => {
let name = field.attrs.name;
-
- // Remove invisible fields from the measures
+ // Remove invisible fields from the measures if not in additionalMeasures
if (field.attrs.invisible && py.eval(field.attrs.invisible)) {
- delete measures[name];
- return;
+ if (name in groupableFields) {
+ delete groupableFields[name];
+ }
+ if (!additionalMeasures.includes(name)) {
+ delete measures[name];
+ return;
+ }
}
if (field.attrs.interval) {
name += ':' + field.attrs.interval;