From 63ae8274cecc171185bffeabf082aef9f14a5e2d Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Tue, 2 Feb 2010 16:54:35 +0530 Subject: [PATCH] [FIX]: base_calendar, caldav: Fixed problem of wrong attendee data bzr revid: rpa@openerp.co.in-20100202112435-r6b2bm4e60i9ba5b --- addons/base_calendar/base_calendar.py | 7 ++++--- addons/caldav/caldav.py | 13 +++++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 6cb7e5324fd..31b2d7f7cc8 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -775,14 +775,15 @@ class Attendee(CalDAV, osv.osv_memory): cn_val = '' for a_key, a_val in self.__attribute__.items(): if attendee[a_val['field']] and a_val['field'] != 'cn': - if a_val['type'] == 'text': + if a_val['type'] in ('text', 'char', 'selection'): attendee_add.params[a_key] = [str(attendee[a_val['field']])] elif a_val['type'] == 'boolean': attendee_add.params[a_key] = [str(attendee[a_val['field']])] if a_val['field'] == 'cn' and attendee[a_val['field']]: cn_val = [str(attendee[a_val['field']])] - if cn_val: - attendee_add.params['CN'] = cn_val + if cn_val: + attendee_add.params['CN'] = cn_val + attendee_add.value = 'MAILTO:' + attendee['email'] return vevent Attendee() diff --git a/addons/caldav/caldav.py b/addons/caldav/caldav.py index cf346ad3def..160e9dea599 100644 --- a/addons/caldav/caldav.py +++ b/addons/caldav/caldav.py @@ -82,8 +82,11 @@ class calendar_attendee(osv.osv): result = {} def get_delegate_data(user): - email = user.address_id and user.address_id.email or '' - return self._get_address(user.name, email) + if not user.address_id.email: + raise osv.except_osv(_('Error!'), \ + ("User does not have an email Address")) + email = (user.address_id and ('MAILTO:' + user.address_id.email)) or '' + return email for attdata in self.browse(cr, uid, ids, context=context): id = attdata.id @@ -192,7 +195,7 @@ request was delegated to"), 'user_id': fields.many2one('res.users', 'User'), 'partner_address_id': fields.many2one('res.partner.address', 'Contact'), 'partner_id':fields.related('partner_address_id', 'partner_id', type='many2one', relation='res.partner', string='Partner'), - 'email': fields.char('Email', size=124), + 'email': fields.char('Email', size=124, required=True), 'event_date': fields.function(_compute_data, method=True, string='Event Date', type="datetime", multi='event_date'), 'event_end_date': fields.function(_compute_data, method=True, string='Event End Date', type="datetime", multi='event_end_date'), 'ref': fields.reference('Document Ref', selection=_links_get, size=128), @@ -503,9 +506,7 @@ rule or repeating pattern for anexception to a recurrence set"), event_data = self.read(cr, uid, ids) event_obj = self.pool.get('basic.calendar.event') ical = event_obj.export_cal(cr, uid, event_data, context={'model': self._name}) - cal_val = ical.serialize() - cal_val = cal_val.replace('"', '').strip() - return cal_val + return ical.serialize() def import_cal(self, cr, uid, data, data_id=None, context={}): event_obj = self.pool.get('basic.calendar.event')