From 81e84e7b281c6eeebd050add831a9ac5848a7137 Mon Sep 17 00:00:00 2001 From: Fabien BOURGEOIS Date: Thu, 10 May 2018 18:19:45 +0200 Subject: [PATCH] [ADD][WIP]Radicale Odoo Storage : add alarms management from Odoo --- radicale_odoo_storage/__init__.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/radicale_odoo_storage/__init__.py b/radicale_odoo_storage/__init__.py index 8ae4223..6f35a03 100644 --- a/radicale_odoo_storage/__init__.py +++ b/radicale_odoo_storage/__init__.py @@ -29,6 +29,7 @@ from contextlib import contextmanager from time import strftime, strptime +from datetime import timedelta import pytz import vobject from odoorpc import ODOO @@ -193,6 +194,7 @@ class Collection(BaseCollection): @classmethod def _generate_ics_from_odoo(cls, href, event): """ Generate and return UCS object from Odoo calendar.event record """ + # TODO/IMP : attendees management (not handled directly by vobject) utc_dtstart = cls.odoo_date_to_utc(event.start_datetime) utc_dtstop = cls.odoo_date_to_utc(event.stop_datetime) last_modified = str(cls.odoo_date_to_utc(event.write_date)) @@ -207,6 +209,12 @@ class Collection(BaseCollection): if event.categ_ids: categs = [categ.name for categ in event.categ_ids] cal.vevent.add('categories').value = categs + if event.alarm_ids: + for alarm in event.alarm_ids: + valarm = cal.vevent.add('valarm') + action = 'DISPLAY' if alarm.type == 'notification' else 'EMAIL' + valarm.add('action').value = action + valarm.add('trigger').value = timedelta(minutes=-alarm.duration_minutes) cal.vevent.add('uid').value = href cal.vevent.add('rev').value = last_modified cal.add('rev').value = last_modified