summaryrefslogtreecommitdiff
path: root/addons/calendar_sms
diff options
context:
space:
mode:
authorIvan Yelizariev <iel@odoo.com>2020-12-01 15:48:06 +0000
committerIvan Yelizariev <iel@odoo.com>2020-12-04 17:12:06 +0000
commit0e434d8cedd6ff9c65e539febeef220b0334e584 (patch)
tree17020b038bfa350d69df8455b1659668cde2899d /addons/calendar_sms
parent399b4f1ceb31f560ce534ee8d9605ca43733f68c (diff)
[FIX] calendar, calendar_sms: stop sending wrong reminders
STEPS: * Update cron "Calendar: Event Reminder": set Execute every 2 minutes * create a recurring event: * date: now() - 8 weeks * time: now() + 1 hour + 3 minutes * Repeat every 1 week, until "now() + 8 weeks" * Reminders: "Notification-1 hour", "Email-1 hour", "SMS-1 hour" * wait 3 minutes * Wait 0-5 minutes * Check menu ``[[ Settings ]] >> Technical >> Discuss >> Messages`` * Check menu ``[[ Settings ]] >> Technical >> Phone / SMS >> SMS`` BEFORE: you get mail/sms/UI notifications for all passed dates AFTER: you get mail/sms/UI notifications only for the comming event WHY: in v13.0-, recurring calendar.event records were virtual, so _get_occurrences was used to generate those virtual records. In Odoo v14+ it's not needed --- opw-2389877 closes odoo/odoo#62701 Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>
Diffstat (limited to 'addons/calendar_sms')
-rw-r--r--addons/calendar_sms/models/calendar.py18
1 files changed, 3 insertions, 15 deletions
diff --git a/addons/calendar_sms/models/calendar.py b/addons/calendar_sms/models/calendar.py
index b47a28b0916..b01e2736f3f 100644
--- a/addons/calendar_sms/models/calendar.py
+++ b/addons/calendar_sms/models/calendar.py
@@ -61,20 +61,8 @@ class AlarmManager(models.AbstractModel):
for event in self.env['calendar.event'].browse(events_data):
max_delta = events_data[event.id]['max_duration']
-
- if event.recurrency:
- found = False
- for event_start in event.recurrence_id._get_occurrences(event.start):
- event_start = event_start.replace(tzinfo=None)
- last_found = self.do_check_alarm_for_one_date(event_start, event, max_delta, 0, 'sms', after=last_sms_cron, missing=True)
- for alert in last_found:
- event.browse(alert['event_id'])._do_sms_reminder()
- found = True
- if found and not last_found: # if the precedent event had an alarm but not this one, we can stop the search for this event
- break
- else:
- event_start = fields.Datetime.from_string(event.start)
- for alert in self.do_check_alarm_for_one_date(event_start, event, max_delta, 0, 'sms', after=last_sms_cron, missing=True):
- event.browse(alert['event_id'])._do_sms_reminder()
+ event_start = fields.Datetime.from_string(event.start)
+ for alert in self.do_check_alarm_for_one_date(event_start, event, max_delta, 0, 'sms', after=last_sms_cron, missing=True):
+ event.browse(alert['event_id'])._do_sms_reminder()
self.env['ir.config_parameter'].set_param('calendar_sms.last_sms_cron', now)
return result