diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index 0634d7bb..9f1f082a 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -262,7 +262,7 @@ class Branch(models.Model): @api.depends('staging_ids.active') def _compute_active_staging(self): for b in self: - b.active_staging_id = b.staging_ids + b.active_staging_id = b.with_context(active_test=True).staging_ids def _stageable(self): # noinspection SqlResolve @@ -1327,15 +1327,17 @@ class Stagings(models.Model): s.state = st @api.multi - def cancel(self, reason=None, *args): + def action_cancel(self): + self.cancel("explicitly cancelled by %s", self.env.user.display_name) + return { 'type': 'ir.actions.act_window_close' } + + def cancel(self, reason, *args): + self = self.filtered('active') if not self: return - if reason is None: - reason = "explicitly cancelled by %s" - args = [self.env.user.display_name] _logger.info("Cancelling staging %s: " + reason, self, *args) - self.batch_ids.write({'active': False}) + self.mapped('batch_ids').write({'active': False}) self.write({ 'active': False, 'state': 'cancelled', diff --git a/runbot_merge/views/mergebot.xml b/runbot_merge/views/mergebot.xml index 024a01de..10ac7e87 100644 --- a/runbot_merge/views/mergebot.xml +++ b/runbot_merge/views/mergebot.xml @@ -189,8 +189,11 @@ runbot_merge.stagings
+
-