diff options
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/views/graph/graph_view.js | 16 | ||||
| -rw-r--r-- | addons/web/static/src/js/views/pivot/pivot_view.js | 12 |
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; |
