Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 14.0
1 result

Target

Select target project
  • lefilament/bluemind4-connector
1 result
Select Git revision
  • 14.0
1 result
Show changes
Commits on Source (2)
......@@ -187,7 +187,7 @@ class CalendarEvent(models.Model):
bm_event.main.status = ICalendarElementStatus("Confirmed")
bm_event.main.organizer = ICalendarElementOrganizer()
bm_event.main.organizer.commonName = event.user_id.partner_id.name
bm_event.main.organizer.mailto = event.user_id.partner_id.mail
bm_event.main.organizer.mailto = event.user_id.partner_id.email
if event.user_id.bluemind_user_id:
bm_event.main.organizer.dir = (
"bm://"
......@@ -240,7 +240,7 @@ class CalendarEvent(models.Model):
bm_event.main.alarm = []
for alarm in self.alarm_ids:
al = ICalendarElementVAlarm()
if alarm.alarm_type = "notification":
if alarm.alarm_type == "notification":
al.action = ICalendarElementVAlarmAction("Display")
else:
al.action = ICalendarElementVAlarmAction("Email")
......@@ -275,7 +275,7 @@ class CalendarEvent(models.Model):
if event.recurrency:
bm_event.main.rrule = ICalendarElementRRule()
bm_event.main.rrule.frequency = ICalendarElementRRuleFrequency(
event.frequency.toupper()
event.rrule_type.upper()
)
bm_event.main.rrule.interval = event.interval
if event.end_type == "count":
......@@ -287,12 +287,12 @@ class CalendarEvent(models.Model):
bm_event.main.rrule.until.timezone = event.event_tz
if (
event.frequency == "monthly" and event.month_by == "day"
) or event.frequency == "weekly":
event.rrule_type == "monthly" and event.month_by == "day"
) or event.rrule_type == "weekly":
bm_event.main.rrule.byDay = [ICalendarElementRRuleWeekDay()]
bm_event.main.rrule.byDay[0].day = str(event.weekday)
bm_event.main.rrule.byDay[0].offset = int(event.byday)
elif event.frequency == "monthly" and event.month_by == "date":
elif event.rrule_type == "monthly" and event.month_by == "date":
bm_event.main.rrule.byMonthDay = [event.day]
return bm_event
......
......@@ -157,6 +157,7 @@ class ResUser(models.Model):
# Calendar entries created on Bluemind side, not already in Odoo
# The events already in Odoo are ignored (probably already synced previously
if bm_created_uids:
events_to_create = []
bm_events_to_create_uids = [
e for e in bm_created_uids if e not in odoo_events_bm_uids
......@@ -168,8 +169,9 @@ class ResUser(models.Model):
# Only if Organizer is the same as Odoo user or if is not linked to
# any active Odoo internal user
if (
bm_event.value.main.organizer.mailto == self.partner_id.email
or bm_event.value.main.organizer.mailto not in odoo_users_emails
bm_event.value.main.organizer
and (bm_event.value.main.organizer.mailto == self.partner_id.email
or bm_event.value.main.organizer.mailto not in odoo_users_emails)
):
events_to_create.append(Calendar._bm_to_odoo_values(bm_event))
if events_to_create:
......@@ -177,10 +179,11 @@ class ResUser(models.Model):
# Calendar entries that have been updated on Bluemind
# Retrieve full events from Bluemind
if bm_updated_uids:
bm_events_to_update = bm_calendar.multipleGet(bm_updated_uids)
# Update corresponding events
for bm_event in bm_events_to_update:
odoo_event = odoo_events_bm_linked.filtered(
odoo_event = odoo_events_bm_linked.filtered_domain(
[("bluemind_id", "=", bm_event.uid)]
)
# If related event exists in Odoo and belongs to the user, update it
......@@ -195,9 +198,11 @@ class ResUser(models.Model):
# Calendar entries that have been deleted on Bluemind to be deleted on Odoo
# (only if belongs to user)
odoo_events_to_delete = odoo_events_bm_linked.filtered(
if bm_deleted_uids:
odoo_events_to_delete = odoo_events_bm_linked.filtered_domain(
[("bluemind_id", "in", bm_deleted_uids), ("user_id", "=", self.id)]
)
if odoo_events_to_delete:
odoo_events_to_delete.unlink(from_bluemind=True)
# Update user last_sync_version with the latest one retrieved from Bluemind
......@@ -224,7 +229,7 @@ class ResUser(models.Model):
for user in users:
_logger.info("Calendar Synchro - Starting synchronization for %s", user)
try:
user.with_user(user).sudo().sync_bluemind_calendar()
user.with_user(user).sync_bluemind_calendar()
_logger.info(
"Calendar Synchro - Completed synchronization for %s", user
)
......