From 85fe1bc49191a4ee37863d9712708fa8225eb9fc Mon Sep 17 00:00:00 2001 From: Florian Damhaut Date: Thu, 15 Dec 2022 10:32:52 +0000 Subject: [PATCH] [FIX] calendar: fix no last call traceback If there was an issue an the lastcall value for the calendar cron the cron would raise an error. This commit give a default value to the lastcall equal to one week ago. task-id : 3102295 closes odoo/odoo#110154 X-original-commit: e0aa273104ce576cd2746340f0e2c5c4af4a86bd Signed-off-by: Arnaud Joset --- addons/calendar/models/calendar_alarm_manager.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/calendar/models/calendar_alarm_manager.py b/addons/calendar/models/calendar_alarm_manager.py index 916ddd7fdc9..21d16ff3efe 100644 --- a/addons/calendar/models/calendar_alarm_manager.py +++ b/addons/calendar/models/calendar_alarm_manager.py @@ -3,6 +3,7 @@ import logging from datetime import timedelta +from dateutil.relativedelta import relativedelta from odoo import api, fields, models from odoo.tools import plaintext2html @@ -150,6 +151,7 @@ class AlarmManager(models.AbstractModel): design. The attendees receive an invitation for any new event already. """ + lastcall = self.env.context.get('lastcall', False) or fields.date.today() - relativedelta(weeks=1) self.env.cr.execute(''' SELECT "alarm"."id", "event"."id" FROM "calendar_event" AS "event" @@ -162,7 +164,7 @@ class AlarmManager(models.AbstractModel): AND "event"."active" AND "event"."start" - CAST("alarm"."duration" || ' ' || "alarm"."interval" AS Interval) >= %s AND "event"."start" - CAST("alarm"."duration" || ' ' || "alarm"."interval" AS Interval) < now() at time zone 'utc' - )''', [alarm_type, self.env.context['lastcall']]) + )''', [alarm_type, lastcall]) events_by_alarm = {} for alarm_id, event_id in self.env.cr.fetchall():