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))