From c4ed0a8e6ce1585918c03dd7608635eab619bbd7 Mon Sep 17 00:00:00 2001 From: Arnaud Joset Date: Mon, 17 Apr 2023 08:41:31 +0000 Subject: [PATCH] [IMP] Base ir.cron: _trigger should return the ir.cron.trigger records Before this commit, when a ir.cron was walling _trigger, the ir.cron.trigger records were not returned. it would prevent to use them later easily without making a search. Taskid: 3270442 Part-of: odoo/odoo#118738 --- odoo/addons/base/models/ir_cron.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/odoo/addons/base/models/ir_cron.py b/odoo/addons/base/models/ir_cron.py index fae73756e68..e251db29548 100644 --- a/odoo/addons/base/models/ir_cron.py +++ b/odoo/addons/base/models/ir_cron.py @@ -465,6 +465,8 @@ class ir_cron(models.Model): :param Optional[Union[datetime.datetime, list[datetime.datetime]]] at: When to execute the cron, at one or several moments in time instead of as soon as possible. + :return: the created triggers records + :rtype: recordset """ if at is None: at_list = [fields.Datetime.now()] @@ -474,7 +476,7 @@ class ir_cron(models.Model): at_list = list(at) assert all(isinstance(at, datetime) for at in at_list) - self._trigger_list(at_list) + return self._trigger_list(at_list) def _trigger_list(self, at_list): """ @@ -482,6 +484,8 @@ class ir_cron(models.Model): :param list[datetime.datetime] at_list: Execute the cron later, at precise moments in time. + :return: the created triggers records + :rtype: recordset """ self.ensure_one() now = fields.Datetime.now() @@ -491,9 +495,9 @@ class ir_cron(models.Model): at_list = [at for at in at_list if at > now] if not at_list: - return + return self.env['ir.cron.trigger'] - self.env['ir.cron.trigger'].sudo().create([ + triggers = self.env['ir.cron.trigger'].sudo().create([ {'cron_id': self.id, 'call_at': at} for at in at_list ]) @@ -503,6 +507,7 @@ class ir_cron(models.Model): if min(at_list) <= now or os.getenv('ODOO_NOTIFY_CRON_CHANGES'): self._cr.postcommit.add(self._notifydb) + return triggers def _notifydb(self): """ Wake up the cron workers