[FIX] Error when selecting filters in calendar view

e.g. calendar view of customer invoice

Also attempted to make the code flow slightly simpler by just forcing
the filter to a [value, label] pair in all cases.

bzr revid: xmo@openerp.com-20130516125650-qeqx97dzzhzjrq52
This commit is contained in:
Xavier Morel 2013-05-16 14:56:50 +02:00
commit 3c32920301
1 changed files with 9 additions and 5 deletions

View File

@ -265,8 +265,9 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
//To parse Events we have to convert date Format //To parse Events we have to convert date Format
var res_events = [], var res_events = [],
sidebar_items = {}; sidebar_items = {};
var selection_label = {}; var selection_label;
if(this.fields[this.color_field].selection) { if(this.fields[this.color_field].selection) {
selection_label = {};
_(this.fields[this.color_field].selection).each(function(value){ _(this.fields[this.color_field].selection).each(function(value){
selection_label[value[0]] = value[1]; selection_label[value[0]] = value[1];
}); });
@ -280,16 +281,19 @@ instance.web_calendar.CalendarView = instance.web.View.extend({
if (this.color_field) { if (this.color_field) {
var filter = evt[this.color_field]; var filter = evt[this.color_field];
if (filter) { if (filter) {
if(this.fields[this.color_field].selection) { if (typeof filter !== 'object') {
filter = selection_label[filter]; filter = [filter, filter];
} }
var filter_value = (typeof filter === 'object') ? filter[0] : filter; if (selection_label) {
filter[1] = selection_label[filter[0]];
}
var filter_value = filter[0];
if (typeof(fn_filter) === 'function' && !fn_filter(filter_value)) { if (typeof(fn_filter) === 'function' && !fn_filter(filter_value)) {
continue; continue;
} }
var filter_item = { var filter_item = {
value: filter_value, value: filter_value,
label: (typeof filter === 'object') ? filter[1] : filter, label: filter[1],
color: this.get_color(filter_value) color: this.get_color(filter_value)
}; };
if (!sidebar_items[filter_value]) { if (!sidebar_items[filter_value]) {