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_model.js24
-rw-r--r--addons/web/static/src/js/views/graph/graph_view.js16
2 files changed, 17 insertions, 23 deletions
diff --git a/addons/web/static/src/js/views/graph/graph_model.js b/addons/web/static/src/js/views/graph/graph_model.js
index 877472a7bc2..5948e07a54f 100644
--- a/addons/web/static/src/js/views/graph/graph_model.js
+++ b/addons/web/static/src/js/views/graph/graph_model.js
@@ -46,30 +46,23 @@ return AbstractModel.extend({
* should be done by the graphView I think.
*
* @param {Object} params
- * @param {string[]} params.groupedBy
- * @param {string} params.initialMode one of 'pie', 'bar', 'line
- * @param {string} params.initialMeasure a valid field name
- * @param {string[]} params.initialGroupBys a list of valid field names
+ * @param {string} params.mode one of 'pie', 'bar', 'line
+ * @param {string} params.measure a valid field name
+ * @param {string[]} params.groupBys a list of valid field names
* @param {Object} params.context
* @param {string[]} params.domain
* @returns {Deferred} The deferred does not return a handle, we don't need
* to keep track of various entities.
*/
load: function (params) {
- this.initialGroupBys = params.initialGroupBys;
+ this.initialGroupBys = params.groupBys;
this.fields = params.fields;
this.modelName = params.modelName;
- if (!params.groupedBy.length) {
- var groupedBy = params.context.graph_groupbys ||
- (params.groupedBy.length && params.groupedBy) ||
- this.initialGroupBys;
- params.groupedBy = groupedBy.slice(0);
- }
this.chart = {
data: [],
- groupedBy: params.groupedBy,
- measure: params.initialMeasure,
- mode: params.initialMode,
+ groupedBy: params.groupBys,
+ measure: params.measure,
+ mode: params.mode,
domain: params.domain,
context: params.context,
};
@@ -130,13 +123,14 @@ return AbstractModel.extend({
if (this.chart.measure !== '__count__') {
fields = fields.concat(this.chart.measure);
}
+ var groupedBy = this.chart.groupedBy.length ? this.chart.groupedBy : this.initialGroupBys;
return this._rpc({
model: this.modelName,
method: 'read_group',
context: this.chart.context,
domain: this.chart.domain,
fields: fields,
- groupBy: this.chart.groupedBy,
+ groupBy: groupedBy,
lazy: false,
})
.then(this._processData.bind(this));
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 1d4ee29ef63..08b5ce1968f 100644
--- a/addons/web/static/src/js/views/graph/graph_view.js
+++ b/addons/web/static/src/js/views/graph/graph_view.js
@@ -27,11 +27,11 @@ var GraphView = AbstractView.extend({
/**
* @override
*/
- init: function (viewInfo) {
+ init: function (viewInfo, params) {
this._super.apply(this, arguments);
- var initialMeasure = '__count__';
- var initialGroupBys = [];
+ var measure;
+ var groupBys = [];
viewInfo.fields = _.defaults({__count__: {string: _t("Count"), type: "integer"}}, viewInfo.fields);
viewInfo.arch.children.forEach(function (field) {
var name = field.attrs.name;
@@ -39,9 +39,9 @@ var GraphView = AbstractView.extend({
name += ':' + field.attrs.interval;
}
if (field.attrs.type === 'measure') {
- initialMeasure = name;
+ measure = name;
} else {
- initialGroupBys.push(name);
+ groupBys.push(name);
}
});
@@ -57,9 +57,9 @@ var GraphView = AbstractView.extend({
this.controllerParams.measures = measures;
this.rendererParams.stacked = viewInfo.arch.attrs.stacked !== "False";
- this.loadParams.initialMode = viewInfo.arch.attrs.type || 'bar';
- this.loadParams.initialMeasure = initialMeasure;
- this.loadParams.initialGroupBys = initialGroupBys;
+ this.loadParams.mode = params.context.graph_mode || viewInfo.arch.attrs.type || 'bar';
+ this.loadParams.measure = params.context.graph_measure || measure || '__count__';
+ this.loadParams.groupBys = params.context.graph_groupbys || groupBys || [];
this.loadParams.fields = viewInfo.fields;
},
});