[FIX] web_graph : display the correct label for Selection fields in view graph

This commit is contained in:
Jérome Maes
2014-08-07 16:00:19 +02:00
parent 05f9b45ef1
commit 007a2f2a24
+16 -12
View File
@@ -28,7 +28,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
// ----------------------------------------------------------------------
// this.measures: list of measure [measure], measure = {field: _, string: _, type: _}
// this.rows.groupby, this.cols.groupby : list of groupbys used for describing rows (...),
// a groupby is also {field:_, string:_, type:_}
// a groupby is also {field:_, string:_, type:_}
// If its type is date/datetime, field can have the corresponding interval in its description,
// for example 'create_date:week'.
set_measures: function (measures) {
@@ -65,7 +65,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
}
var row_gb_changed = !_.isEqual(row_groupby, this.rows.groupby),
col_gb_changed = !_.isEqual(col_groupby, this.cols.groupby);
this.domain = domain;
this.rows.groupby = row_groupby;
this.cols.groupby = col_groupby;
@@ -80,7 +80,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
// Cells manipulation methods
// ----------------------------------------------------------------------
// cells are objects {x:_, y:_, values:_} where x < y and values is an array
// of values (one for each measure). The condition x < y might look
// of values (one for each measure). The condition x < y might look
// unnecessary, but it makes the rest of the code simpler: headers
// don't krow if they are rows or cols, they just know their id, so
// it is useful that a call get_values(id1, id2) is the same as get_values(id2, id1)
@@ -103,9 +103,9 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
// ----------------------------------------------------------------------
// Headers/Rows/Cols manipulation methods
// ----------------------------------------------------------------------
// this.rows.headers, this.cols.headers = [header] describe the tree structure
// this.rows.headers, this.cols.headers = [header] describe the tree structure
// of rows/cols. Headers are objects
// {
// {
// id:_, (unique id obviously)
// path: [...], (array of all parents title, with its own title at the end)
// title:_, (name of the row/col)
@@ -150,12 +150,12 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
get_rows_leaves: function () {
return _.where(this.rows.headers, {expanded:false});
},
// return all non expanded cols
get_cols_leaves: function () {
return _.where(this.cols.headers, {expanded:false});
},
get_ancestors: function (header) {
var self = this;
if (!header.children) return [];
@@ -181,7 +181,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
},
main_row: function () { return this.rows.headers[0]; },
main_col: function () { return this.cols.headers[0]; },
// ----------------------------------------------------------------------
@@ -255,7 +255,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
// Data updating methods
// ----------------------------------------------------------------------
// update_data will try to preserve the expand/not expanded status of each
// column/row. If you want to expand all, then set this.cols.headers/this.rows.headers
// column/row. If you want to expand all, then set this.cols.headers/this.rows.headers
// to null before calling update_data.
update_data: function () {
var self = this;
@@ -289,7 +289,7 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
data_pts.forEach(function (data_pt) {
var row_value = (prefix || []).concat(data_pt.attributes.value.slice(0,index));
var col_value = data_pt.attributes.value.slice(index);
if (expand && !_.find(col_headers, function (hdr) {return self.isEqual(col_value, hdr.path);})) {
return;
}
@@ -427,6 +427,10 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
return _t('Undefined');
} else if (attrs.value[i] instanceof Array) {
return attrs.value[i][1];
}else if (grouped_on && self.fields[grouped_on].type === 'selection'){
var selection = self.fields[grouped_on].selection;
var value_lookup = _.where(selection, {0:attrs.value[i]});
return value_lookup ? value_lookup[0][1] : _t('Undefined');
}
return attrs.value[i];
});
@@ -445,8 +449,8 @@ openerp.web_graph.PivotTable = openerp.web.Class.extend({
isEqual: function (path1, path2) {
if (path1.length !== path2.length) { return false; }
for (var i = 0; i < path1.length; i++) {
if (path1[i] !== path2[i]) {
return false;
if (path1[i] !== path2[i]) {
return false;
}
}
return true;