From 0853de32fbb97f16a8be25208588bfca7fef9263 Mon Sep 17 00:00:00 2001 From: Kersten Jeremy Date: Tue, 29 Apr 2014 17:00:38 +0200 Subject: [PATCH] [FIX] Allow to use attendee_people without use_contact. Allow to use an avatar in each event distinct from sidebar. Allow False to hide avatar in sidebar. bzr revid: jke@openerp.com-20140429150038-zkf2dwxu15tp04qd --- .../static/src/js/web_calendar.js | 48 +++++++++++-------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/addons/web_calendar/static/src/js/web_calendar.js b/addons/web_calendar/static/src/js/web_calendar.js index 380df1f4d4c..552e6a30b47 100644 --- a/addons/web_calendar/static/src/js/web_calendar.js +++ b/addons/web_calendar/static/src/js/web_calendar.js @@ -197,6 +197,13 @@ openerp.web_calendar = function(instance) { } else { this.avatar_title = attrs.avatar_title; } + + if (isNullOrUndef(attrs.avatar_filter)) { + this.avatar_filter = this.avatar_model; + } else { + this.avatar_filter = attrs.avatar_filter; + } + this.color_field = attrs.color; if (this.color_field && this.selected_filters.length === 0) { @@ -578,7 +585,7 @@ openerp.web_calendar = function(instance) { if (!self.colorIsAttendee || the_attendee_people != temp_ret[self.color_field]) { tempColor = (self.all_filters[the_attendee_people] !== undefined) ? self.all_filters[the_attendee_people].color - : self.all_filters[-1].color; + : (self.all_filters[-1] ? self.all_filters[-1].color : 1); the_title_avatar += ''; }//else don't add myself } @@ -701,7 +708,6 @@ openerp.web_calendar = function(instance) { } if (!self.useContacts) { // If we use all peoples displayed in the current month as filter in sidebars - var filter_value; var filter_item; @@ -714,7 +720,7 @@ openerp.web_calendar = function(instance) { value: filter_value, label: e[self.color_field][1], color: self.get_color(filter_value), - avatar_model: self.avatar_model, + avatar_model: (_.str.toBoolElse(self.avatar_filter, true) ? self.avatar_filter : false ), is_checked: true }; self.all_filters[e[self.color_field][0]] = filter_item; @@ -735,7 +741,7 @@ openerp.web_calendar = function(instance) { return null; }); } - return self.perform_necessary_name_gets(events).then(callback); + } else { //WE USE CONTACT if (self.attendee_people !== undefined) { @@ -752,25 +758,27 @@ openerp.web_calendar = function(instance) { } } - var all_attendees = $.map(events, function (e) { return e[self.attendee_people]; }); - all_attendees = _.chain(all_attendees).flatten().uniq().value(); + + } - self.all_attendees = {}; - if (self.avatar_title !== null) { - new instance.web.Model(self.avatar_title).query(["name"]).filter([["id", "in", all_attendees]]).all().then(function(result) { - _.each(result, function(item) { - self.all_attendees[item.id] = item.name; - }); - }).done(function() { - return self.perform_necessary_name_gets(events).then(callback); - }); - } - else { - _.each(all_attendees,function(item){ - self.all_attendees[item] = ''; + var all_attendees = $.map(events, function (e) { return e[self.attendee_people]; }); + all_attendees = _.chain(all_attendees).flatten().uniq().value(); + + self.all_attendees = {}; + if (self.avatar_title !== null) { + new instance.web.Model(self.avatar_title).query(["name"]).filter([["id", "in", all_attendees]]).all().then(function(result) { + _.each(result, function(item) { + self.all_attendees[item.id] = item.name; }); + }).done(function() { return self.perform_necessary_name_gets(events).then(callback); - } + }); + } + else { + _.each(all_attendees,function(item){ + self.all_attendees[item] = ''; + }); + return self.perform_necessary_name_gets(events).then(callback); } }); },