finally got attendees and timezones working well
This commit is contained in:
parent
308e2ea9a9
commit
f4a44c24ec
2 changed files with 9 additions and 1 deletions
|
|
@ -20,6 +20,9 @@
|
||||||
'author': 'Bemade Inc.',
|
'author': 'Bemade Inc.',
|
||||||
'website': 'https://www.bemade.org',
|
'website': 'https://www.bemade.org',
|
||||||
'depends': ['base', 'calendar'],
|
'depends': ['base', 'calendar'],
|
||||||
|
'external_dependencies': {
|
||||||
|
'python': ['caldav', 'icalendar', 'bs4'],
|
||||||
|
},
|
||||||
'images': ['static/description/images/main_screenshot.png'],
|
'images': ['static/description/images/main_screenshot.png'],
|
||||||
'data': [
|
'data': [
|
||||||
'views/res_users_views.xml',
|
'views/res_users_views.xml',
|
||||||
|
|
|
||||||
|
|
@ -152,19 +152,24 @@ class CalendarEvent(models.Model):
|
||||||
ical_event.add('dtstamp', utc.localize(event.write_date).astimezone(user_tz))
|
ical_event.add('dtstamp', utc.localize(event.write_date).astimezone(user_tz))
|
||||||
if event.name:
|
if event.name:
|
||||||
ical_event.add('summary', event.name)
|
ical_event.add('summary', event.name)
|
||||||
if self._html_to_text(event.description):
|
if event.description and self._html_to_text(event.description):
|
||||||
ical_event.add('description', self._html_to_text(event.description))
|
ical_event.add('description', self._html_to_text(event.description))
|
||||||
if event.location:
|
if event.location:
|
||||||
ical_event.add('location', event.location)
|
ical_event.add('location', event.location)
|
||||||
if event.videocall_location:
|
if event.videocall_location:
|
||||||
ical_event.add('CONFERENCE', event.videocall_location)
|
ical_event.add('CONFERENCE', event.videocall_location)
|
||||||
for partner in event.partner_ids:
|
for partner in event.partner_ids:
|
||||||
|
if partner == event.user_id.partner_id:
|
||||||
|
continue
|
||||||
attendee = vCalAddress(f'MAILTO:{partner.email}')
|
attendee = vCalAddress(f'MAILTO:{partner.email}')
|
||||||
attendee.params['cn'] = vText(partner.name)
|
attendee.params['cn'] = vText(partner.name)
|
||||||
attendee_record = self.env['calendar.attendee'].search([('event_id', '=', event.id), ('partner_id', '=', partner.id)], limit=1)
|
attendee_record = self.env['calendar.attendee'].search([('event_id', '=', event.id), ('partner_id', '=', partner.id)], limit=1)
|
||||||
if attendee_record:
|
if attendee_record:
|
||||||
attendee.params['partstat'] = vText(self._map_attendee_status(attendee_record.state))
|
attendee.params['partstat'] = vText(self._map_attendee_status(attendee_record.state))
|
||||||
ical_event.add('attendee', attendee, encode=0)
|
ical_event.add('attendee', attendee, encode=0)
|
||||||
|
organizer = vCalAddress(f"MAILTO:{event.user_id.email}")
|
||||||
|
organizer.params['cn'] = event.user_id.name
|
||||||
|
ical_event.add('organizer', organizer)
|
||||||
# Add RRULE if the event is recurrent
|
# Add RRULE if the event is recurrent
|
||||||
if event.recurrency and event.recurrence_id:
|
if event.recurrency and event.recurrence_id:
|
||||||
rrule = event.recurrence_id._get_rrule()
|
rrule = event.recurrence_id._get_rrule()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue