From aacc6b27b495ca9c815ddfe5e83b64b6410845ab Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Thu, 5 Sep 2024 20:37:50 -0400 Subject: [PATCH] caldav_sync: fixes #108, warning on invalid operator. Add a type check to the values being compared when iterating over current and changed values in a calendar event. Also, rewrite to use dictionary comprehension for readability. --- caldav_sync/__manifest__.py | 2 +- caldav_sync/models/calendar_event.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/caldav_sync/__manifest__.py b/caldav_sync/__manifest__.py index ddc3da0..223ae8f 100644 --- a/caldav_sync/__manifest__.py +++ b/caldav_sync/__manifest__.py @@ -8,7 +8,7 @@ { "name": "CalDAV Synchronization", - "version": "17.0.0.5.7", + "version": "17.0.0.5.8", "license": "LGPL-3", "category": "Productivity", "summary": "Synchronize Odoo Calendar Events with CalDAV Servers", diff --git a/caldav_sync/models/calendar_event.py b/caldav_sync/models/calendar_event.py index ef70426..6067738 100644 --- a/caldav_sync/models/calendar_event.py +++ b/caldav_sync/models/calendar_event.py @@ -394,9 +394,14 @@ class CalendarEvent(models.Model): ) # Don't write values that haven't changed - for key, val in values.items(): - if getattr(existing_instance, key) != val: - changed_vals.update({key: values.get(key)}) + changed_vals = { + key: val + for key, val in values.items() + if (cur_val := getattr(existing_instance, key)) + and isinstance(cur_val, type(val)) + and cur_val != val + + } if ( recurrency_vals and recurrency_vals.get("recurrency")