finally got attendees and timezones working well

This commit is contained in:
Marc Durepos 2024-05-28 11:34:53 -04:00
parent 308e2ea9a9
commit f4a44c24ec
2 changed files with 9 additions and 1 deletions

View file

@ -20,6 +20,9 @@
'author': 'Bemade Inc.',
'website': 'https://www.bemade.org',
'depends': ['base', 'calendar'],
'external_dependencies': {
'python': ['caldav', 'icalendar', 'bs4'],
},
'images': ['static/description/images/main_screenshot.png'],
'data': [
'views/res_users_views.xml',

View file

@ -152,19 +152,24 @@ class CalendarEvent(models.Model):
ical_event.add('dtstamp', utc.localize(event.write_date).astimezone(user_tz))
if 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))
if event.location:
ical_event.add('location', event.location)
if event.videocall_location:
ical_event.add('CONFERENCE', event.videocall_location)
for partner in event.partner_ids:
if partner == event.user_id.partner_id:
continue
attendee = vCalAddress(f'MAILTO:{partner.email}')
attendee.params['cn'] = vText(partner.name)
attendee_record = self.env['calendar.attendee'].search([('event_id', '=', event.id), ('partner_id', '=', partner.id)], limit=1)
if attendee_record:
attendee.params['partstat'] = vText(self._map_attendee_status(attendee_record.state))
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
if event.recurrency and event.recurrence_id:
rrule = event.recurrence_id._get_rrule()