Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found
Sélectionner une révision Git
  • 14.0
1 résultat

Cible

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