[FIX] web: calendar: prevent crash when loading data with avatar

This commit is contained in:
Géry Debongnie
2017-04-11 19:44:38 +02:00
committed by Aaron Bohy
parent f3d7b7e420
commit 5e3c4dd434
2 changed files with 29 additions and 1 deletions
@@ -198,7 +198,6 @@ return AbstractRenderer.extend({
*/
getAvatars: function (record, fieldName, imageField) {
var field = this.state.fields[fieldName];
var value = this._format(record, fieldName);
if (!record[fieldName]) {
return [];
@@ -210,6 +209,7 @@ return AbstractRenderer.extend({
} else if (field.type === 'many2one') {
return ['<img src="/web/image/'+field.relation+'/'+record[fieldName][0]+'/'+imageField+'" />'];
} else {
var value = this._format(record, fieldName);
var color = this.getColor(value);
if (isNaN(color)) {
return ['<span class="o_avatar_square" style="background-color:'+color+';"/>'];
@@ -315,6 +315,34 @@ QUnit.module('Views', {
calendar.destroy();
});
QUnit.test('rendering, with many2many', function (assert) {
assert.expect(1);
this.data.event.fields.partner_ids.type = 'many2many';
var calendar = createView({
View: CalendarView,
model: 'event',
data: this.data,
arch:
'<calendar class="o_calendar_test" '+
'date_start="start" '+
'date_stop="stop" '+
'all_day="allday"> '+
'<field name="partner_ids" avatar_field="image" write_model="filter_partner" write_field="partner_id"/>'+
'</calendar>',
archs: archs,
mockRPC: mock_check_access_rights,
viewOptions: {
initialDate: initialDate,
},
});
assert.strictEqual(calendar.$('.o_calendar_filter_items .o_cal_avatar').length, 3,
"should have 3 avatars in the side bar");
calendar.destroy();
});
});
});