mirror of
https://github.com/odoo/runbot.git
synced 2025-03-15 23:45:44 +07:00
[IMP] forwardport: batch list
Since b45ecf08f9
forwardport batches
which fail have a delay set in order to avoid spamming. However that
delay was not displayed anywhere, which made things confusing as the
batch would not get run even after creating new triggers.
Show the delay if it's set (to a value later than now), as a relative
delta for clarity (as normally the delay is in minutes so a full blown
date is difficult to read / aprehend), and allow viewing and setting
it in the form view.
Fixes #982
This commit is contained in:
parent
fbfb96be53
commit
3fe29ba8f6
@ -11,6 +11,7 @@
|
|||||||
<tree>
|
<tree>
|
||||||
<field name="source"/>
|
<field name="source"/>
|
||||||
<field name="batch_id"/>
|
<field name="batch_id"/>
|
||||||
|
<field name="retry_after_relative" string="Retry In"/>
|
||||||
</tree>
|
</tree>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
@ -20,8 +21,13 @@
|
|||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<form>
|
<form>
|
||||||
<group>
|
<group>
|
||||||
<group><field name="source"/></group>
|
<group>
|
||||||
<group><field name="batch_id"/></group>
|
<field name="source"/>
|
||||||
|
<field name="batch_id"/>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<field name="retry_after"/>
|
||||||
|
</group>
|
||||||
</group>
|
</group>
|
||||||
</form>
|
</form>
|
||||||
</field>
|
</field>
|
||||||
|
@ -7,6 +7,7 @@ from datetime import datetime, timedelta
|
|||||||
|
|
||||||
import requests
|
import requests
|
||||||
import sentry_sdk
|
import sentry_sdk
|
||||||
|
from babel.dates import format_timedelta
|
||||||
from dateutil import relativedelta
|
from dateutil import relativedelta
|
||||||
|
|
||||||
from odoo import api, fields, models
|
from odoo import api, fields, models
|
||||||
@ -73,6 +74,7 @@ class ForwardPortTasks(models.Model, Queue):
|
|||||||
('complete', 'Complete ported batches'),
|
('complete', 'Complete ported batches'),
|
||||||
], required=True)
|
], required=True)
|
||||||
retry_after = fields.Datetime(required=True, default='1900-01-01 01:01:01')
|
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')
|
pr_id = fields.Many2one('runbot_merge.pull_requests')
|
||||||
|
|
||||||
@api.model_create_multi
|
@api.model_create_multi
|
||||||
@ -91,6 +93,15 @@ class ForwardPortTasks(models.Model, Queue):
|
|||||||
('retry_after', '<=', fields.Datetime.to_string(fields.Datetime.now())),
|
('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):
|
def _on_failure(self):
|
||||||
super()._on_failure()
|
super()._on_failure()
|
||||||
self.retry_after = fields.Datetime.to_string(fields.Datetime.now() + timedelta(minutes=30))
|
self.retry_after = fields.Datetime.to_string(fields.Datetime.now() + timedelta(minutes=30))
|
||||||
|
Loading…
Reference in New Issue
Block a user