From 0fd254b5fec3b9681cd8b9dd12ea6216a9358b07 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 16 Dec 2024 09:03:56 +0100 Subject: [PATCH] [IMP] runbot_merge: auto-trigger cron for issue closing Probably should create a mixin for this: when a model is used as a task queue for a cron, the cron should automatically be triggered on creation. Requiring an explicit trigger after a creation is error prone and increase the risks that some of the triggers will be forgotten/missed. --- runbot_merge/models/crons/issues_closer.py | 7 ++++++- runbot_merge/models/pull_requests.py | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/runbot_merge/models/crons/issues_closer.py b/runbot_merge/models/crons/issues_closer.py index 904efcf9..544f9b83 100644 --- a/runbot_merge/models/crons/issues_closer.py +++ b/runbot_merge/models/crons/issues_closer.py @@ -1,6 +1,6 @@ import logging -from odoo import models, fields +from odoo import models, fields, api _logger = logging.getLogger(__name__) class BranchCleanup(models.Model): @@ -10,6 +10,11 @@ class BranchCleanup(models.Model): repository_id = fields.Many2one('runbot_merge.repository', required=True) number = fields.Integer(required=True) + @api.model_create_multi + def create(self, vals_list): + self.env.ref('runbot_merge.issues_closer_cron')._trigger() + return super().create(vals_list) + def _run(self): ghs = {} while t := self.search([], limit=1): diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index 4c99b83d..53f7e6b9 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -2435,7 +2435,6 @@ class Stagings(models.Model): }) if self.issues_to_close: self.env['runbot_merge.issues_closer'].create(self.issues_to_close) - self.env.ref('runbot_merge.issues_closer_cron')._trigger() finally: self.write({'active': False}) elif self.state == 'failure' or self.is_timed_out():