aaee5dab51b78225f319771a9950ae86b2d567ff
After https://github.com/odoo/odoo/pull/118738, we start generating a single cron trigger per recurrence, however it fails to create the cron trigger for daily recurrences. The main issue happens when the cron is run after the first trigger of the recurrence. Imagine we have an alarm of 5 minutes before the event, the call for_setup_alarm from _send_reminder will try to get the next event in the recurrency to notify. However, the SQL query uses `WHERE start > now` and if the cron trigger runs before the event is started (most cases) this query will return the event that we're notifying. This commit fixes this by checking event by event which is the next alarm tha should be triggered and passing that date in the context of the `_setup_alarms` call. How to reproduce? Install calendar - Create a recurring event with daily recurrence repeating for 3 days. Invite Demo, set an email alarm for 5 min before the event and create the event - A cron trigger will be created for 5 min before the event - Change your computer's time so that it is 5min before the event - The cron trigger will be called and it should create a new cron trigger for the other day, however no cron trigger is created Issue: SQL query in _setup_alarms in calendar.recurrence is getting the first event with start > now, however it returns the event that was already notified Solution: process event by event and check if its last alarm was already set. If it was, we'll generate an alarm for the next event. If not, we'll use the same event for the _setup_alarms call For SMS alarms, we would not even create triggers for recurring events, so this commit also fixes that. task-3663455 closes odoo/odoo#151623 X-original-commit: 2da5bf6e9184db23836ea458a1fc53e27be49a1e Signed-off-by: Arnaud Joset (arj) <arj@odoo.com> Signed-off-by: Leonardo Pavan Rocha <lpr@odoo.com>
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%