diff --git a/models/calendar_event.py b/models/calendar_event.py index 1091964212597426c575e1202e6cf3a5701ca277..65e21aea197c3708e0d25a771a7a113c5fdd2e45 100644 --- a/models/calendar_event.py +++ b/models/calendar_event.py @@ -44,7 +44,7 @@ PRIVACY_CONVERTER_O2B = { } -# TODO: manage attendee_ids, organizer, alarm_ids, priority, status, categories ? +# TODO: manage attendee_ids, organizer, alarm_ids, priority, status, categories, attachments ? # TODO: check if recurrency properly working without exceptions # TODO: manage exceptions in recurrencies class CalendarEvent(models.Model): diff --git a/models/res_users.py b/models/res_users.py index b6cc78e434ca43bfe39d4bd96e9bbace1a440241..681d5f208c9115ed61095d7c43fe96dc68862669 100644 --- a/models/res_users.py +++ b/models/res_users.py @@ -3,6 +3,7 @@ import logging +from netbluemind.calendar.api.ICalendarUids import ICalendarUids from netbluemind.python.client import BMClient, ServerFault from odoo import _, api, fields, models @@ -80,7 +81,12 @@ class ResUser(models.Model): # TODO : add notification that it works or not return self.bluemind_auth(force=True) - @api.depends("company_id.bluemind_domain", "bluemind_login", "bluemind_password", "is_bm_connection_ok") + @api.depends( + "company_id.bluemind_domain", + "bluemind_login", + "bluemind_password", + "is_bm_connection_ok", + ) def _compute_bluemind_user_id(self): """ This method retrieves the user id from Bluemind client object @@ -95,8 +101,7 @@ class ResUser(models.Model): client = user.bluemind_auth() if client: user.bluemind_user_id = ( - client - .directory(user.company_id.bluemind_domain) + client.directory(user.company_id.bluemind_domain) .getByEmail(user.bluemind_login) .entryUid ) @@ -104,12 +109,14 @@ class ResUser(models.Model): @api.depends("bluemind_user_id") def _compute_bluemind_calendar_uid(self): """ - This method computes default Bluemind calendar_id for the current user - by concatenating calendar:Default: and Bluemind user_id + This method retrieves default calendar uid from Bluemind for the user """ for user in self: - if user.bluemind_user_id: - user.bluemind_calendar_id = "calendar:Default:" + user.bluemind_user_id + client_bm = user.bluemind_auth() + if client_bm and user.bluemind_user_id: + user.bluemind_calendar_id = ICalendarUids( + client_bm.apiKey, client_bm.baseUrl + ).getDefaultUserCalendar(user.bluemind_user_id) def sync_bluemind_calendar(self): """ @@ -191,7 +198,7 @@ class ResUser(models.Model): odoo_events_no_bm = Calendar.search( [("user_id", "=", self.id), ("bluemind_id", "=", False)] ) - odoo_event_no_bm.create_odoo_events_in_bm() + odoo_events_no_bm.create_odoo_events_in_bm() @api.model def _sync_all_bm_calendar(self):