diff --git a/forwardport/data/queues.xml b/forwardport/data/queues.xml index ba011344..8d552a2a 100644 --- a/forwardport/data/queues.xml +++ b/forwardport/data/queues.xml @@ -11,6 +11,7 @@ + @@ -20,8 +21,13 @@
- - + + + + + + +
diff --git a/forwardport/models/forwardport.py b/forwardport/models/forwardport.py index 5e28e5e0..c8824167 100644 --- a/forwardport/models/forwardport.py +++ b/forwardport/models/forwardport.py @@ -7,6 +7,7 @@ from datetime import datetime, timedelta import requests import sentry_sdk +from babel.dates import format_timedelta from dateutil import relativedelta from odoo import api, fields, models @@ -73,6 +74,7 @@ class ForwardPortTasks(models.Model, Queue): ('complete', 'Complete ported batches'), ], required=True) retry_after = fields.Datetime(required=True, default='1900-01-01 01:01:01') + retry_after_relative = fields.Char(compute="_compute_retry_after_relative") pr_id = fields.Many2one('runbot_merge.pull_requests') @api.model_create_multi @@ -91,6 +93,15 @@ class ForwardPortTasks(models.Model, Queue): ('retry_after', '<=', fields.Datetime.to_string(fields.Datetime.now())), ] + @api.depends('retry_after') + def _compute_retry_after_relative(self): + now = fields.Datetime.now() + for t in self: + if t.retry_after <= now: + t.retry_after_relative = "" + else: + t.retry_after_relative = format_timedelta(t.retry_after - now, locale=t.env.lang) + def _on_failure(self): super()._on_failure() self.retry_after = fields.Datetime.to_string(fields.Datetime.now() + timedelta(minutes=30))