[FIX] web: fix update problems in graph view
The graph view was not updated correctly with respect to time range menu data. We fix that problem in this commit.
This commit is contained in:
@@ -101,6 +101,17 @@ return AbstractModel.extend({
|
||||
this.chart.groupedBy = params.context.graph_groupbys || this.chart.groupedBy;
|
||||
this.chart.measure = params.context.graph_measure || this.chart.measure;
|
||||
this.chart.mode = params.context.graph_mode || this.chart.mode;
|
||||
var timeRangeMenuData = params.context.timeRangeMenuData;
|
||||
if (timeRangeMenuData) {
|
||||
this.chart.timeRange = timeRangeMenuData.timeRange || [];
|
||||
this.chart.comparisonTimeRange = timeRangeMenuData.comparisonTimeRange || [];
|
||||
this.chart.compare = this.chart.comparisonTimeRange.length > 0;
|
||||
} else {
|
||||
this.chart.timeRange = [];
|
||||
this.chart.comparisonTimeRange = [];
|
||||
this.chart.compare = false;
|
||||
this.chart = _.omit(this.chart, 'comparisonData');
|
||||
}
|
||||
}
|
||||
if ('domain' in params) {
|
||||
this.chart.domain = params.domain;
|
||||
|
||||
@@ -68,6 +68,16 @@ return AbstractRenderer.extend({
|
||||
this._super.apply(this, arguments);
|
||||
this.isInDOM = false;
|
||||
},
|
||||
/**
|
||||
* @override
|
||||
* @param {Object} state
|
||||
* @param {Object} params
|
||||
*/
|
||||
updateState: function (state, params) {
|
||||
this.isComparison = !!state.comparisonData;
|
||||
this.stacked = this.isComparison ? false : params.stacked;
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
//--------------------------------------------------------------------------
|
||||
// Private
|
||||
|
||||
@@ -723,6 +723,7 @@ QUnit.module('Search View', {
|
||||
assert.expect(43);
|
||||
|
||||
var self = this;
|
||||
var nbrReadGroup = 0;
|
||||
|
||||
var periodOptionText, periodOptionValue;
|
||||
var unpatchDate = patchDate(2017, 2, 22, 1, 0, 0);
|
||||
@@ -733,14 +734,20 @@ QUnit.module('Search View', {
|
||||
data: this.data,
|
||||
mockRPC: function (route, args) {
|
||||
if (route === '/web/dataset/call_kw/partner/read_group') {
|
||||
nbrReadGroup++;
|
||||
var timeRangeMenuData = args.kwargs.context.timeRangeMenuData;
|
||||
if (timeRangeMenuData) {
|
||||
assert.deepEqual(timeRangeMenuData.timeRange,
|
||||
self.periodDomains.shift(),
|
||||
"time range domain for " + periodOptionText);
|
||||
assert.deepEqual(timeRangeMenuData.comparisonTimeRange,
|
||||
self.previousPeriodDomains.shift(),
|
||||
"comparaison time range domain for " + periodOptionText);
|
||||
// nbrReadGroup % 2 === 0 is true when the read group is for data, false
|
||||
// for comparison data
|
||||
if (nbrReadGroup % 2 === 0) {
|
||||
assert.deepEqual(timeRangeMenuData.timeRange,
|
||||
self.periodDomains.shift(),
|
||||
"time range domain for " + periodOptionText);
|
||||
} else {
|
||||
assert.deepEqual(timeRangeMenuData.comparisonTimeRange,
|
||||
self.previousPeriodDomains.shift(),
|
||||
"comparaison time range domain for " + periodOptionText);
|
||||
}
|
||||
}
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
|
||||
Reference in New Issue
Block a user