diff --git a/addons/base_calendar/base_calendar.py b/addons/base_calendar/base_calendar.py index 56d2370e772..bd91e98169b 100644 --- a/addons/base_calendar/base_calendar.py +++ b/addons/base_calendar/base_calendar.py @@ -378,7 +378,6 @@ property or property parameter."), } _defaults = { 'state': 'needs-action', - 'user_id': lambda self, cr, uid, ctx: uid, 'role': 'req-participant', 'rsvp': True, 'cutype': 'individual', @@ -419,7 +418,10 @@ property or property parameter."), event.add('location').value = event_obj.location if event_obj.rrule: event.add('rrule').value = event_obj.rrule - if event_obj.user_id or event_obj.organizer_id: + if event_obj.organizer: + event_org.params['CN'] = [event_obj.organizer] + event_org.value = 'MAILTO:' + (event_obj.organizer) + elif event_obj.user_id or event_obj.organizer_id: event_org = event.add('organizer') organizer = event_obj.organizer_id if not organizer: @@ -1111,6 +1113,7 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'vtimezone': fields.related('user_id', 'context_tz', type='char', size=24, \ string='Timezone', store=True), 'user_id': fields.many2one('res.users', 'Responsible', states={'done': [('readonly', True)]}), + 'organizer': fields.char("Organizer", size=256, states={'done': [('readonly', True)]}), # Map with Organizer Attribure of VEvent. 'organizer_id': fields.many2one('res.users', 'Organizer', states={'done': [('readonly', True)]}), 'freq': fields.selection([('None', 'No Repeat'), \ ('secondly', 'Secondly'), \ @@ -1147,6 +1150,11 @@ e.g.: Every other month on the last Sunday of the month for 10 occurrences:\ 'active': fields.boolean('Active', help="If the active field is set to \ true, it will allow you to hide the event alarm information without removing it.") } + def default_organizer(self, cr, uid, context=None): + user_pool = self.pool.get('res.users') + user = user_pool.browse(cr, uid, uid, context=context) + return user.user_email or user.name + _defaults = { 'state': 'tentative', 'class': 'public', @@ -1156,7 +1164,7 @@ true, it will allow you to hide the event alarm information without removing it. 'interval': 1, 'active': 1, 'user_id': lambda self, cr, uid, ctx: uid, - 'organizer_id': lambda self, cr, uid, ctx: uid, + 'organizer': default_organizer, } def open_event(self, cr, uid, ids, context=None): diff --git a/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml b/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml index bea5ea66a84..494787bbf97 100644 --- a/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml +++ b/addons/base_calendar/wizard/base_calendar_invite_attendee_view.xml @@ -10,6 +10,7 @@ form
+ diff --git a/addons/caldav/calendar.py b/addons/caldav/calendar.py index 6414afd7d48..ab247cd9090 100644 --- a/addons/caldav/calendar.py +++ b/addons/caldav/calendar.py @@ -235,7 +235,7 @@ class CalDAV(object): exdates = [] for cal_data in child.getChildren(): if cal_data.name.lower() == 'organizer': - self.ical_set(cal_data.name.lower(), {'name': cal_data.params.get('CN') and cal_data.params.get('CN')[0]}, 'value') + self.ical_set(cal_data.name.lower(), cal_data.params.get('CN') and cal_data.params.get('CN')[0], 'value') continue if cal_data.name.lower() == 'attendee': ctx = context.copy() @@ -334,12 +334,10 @@ class CalDAV(object): exdates_updated.append(ex_date) exfield.value = map(parser.parse, exdates_updated) elif field == 'organizer' and data[map_field]: + organizer = data[map_field] event_org = vevent.add('organizer') - organizer_id = data[map_field][0] - user_obj = self.pool.get('res.users') - organizer = user_obj.browse(cr, uid, organizer_id, context=context) - event_org.params['CN'] = [organizer.name] - event_org.value = 'MAILTO:' + (organizer.user_email or organizer.name) + event_org.params['CN'] = [organizer] + event_org.value = 'MAILTO:' + (organizer) elif data[map_field]: if map_type in ("char", "text"): if field in ('exdate'): diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index 3c04006447f..af843666435 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -107,7 +107,7 @@ - + diff --git a/addons/crm_caldav/crm_caldav_data.xml b/addons/crm_caldav/crm_caldav_data.xml index 3b74eef123c..692b7e7389e 100644 --- a/addons/crm_caldav/crm_caldav_data.xml +++ b/addons/crm_caldav/crm_caldav_data.xml @@ -32,7 +32,7 @@ - + field