From 0c7765c4cf489e48126aa5dc031bd319f6ccb6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 24 Mar 2021 10:28:23 +0000 Subject: [PATCH] [FIX] calendar: try to import vobject only once Clean code and avoid import within methods. Task ID-2199620 COM PR odoo/odoo#64925 --- addons/calendar/models/calendar_event.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/addons/calendar/models/calendar_event.py b/addons/calendar/models/calendar_event.py index 735d74f7c12..03ba355a67d 100644 --- a/addons/calendar/models/calendar_event.py +++ b/addons/calendar/models/calendar_event.py @@ -21,6 +21,12 @@ from odoo.exceptions import UserError, ValidationError, AccessError _logger = logging.getLogger(__name__) +try: + import vobject +except ImportError: + _logger.warning("`vobject` Python module not found, iCal file generation disabled. Consider installing this module if you want to generate iCal files") + vobject = None + SORT_ALIASES = { 'start': 'sort_start', 'start_date': 'sort_start', @@ -790,11 +796,7 @@ class Meeting(models.Model): return idate.replace(tzinfo=pytz.timezone('UTC')) return False - try: - # FIXME: why isn't this in CalDAV? - import vobject - except ImportError: - _logger.warning("The `vobject` Python module is not installed, so iCal file generation is unavailable. Please install the `vobject` Python module") + if not vobject: return result for meeting in self: