From 1f30af4345af31403ca12fe9f1f591fe5bbb70ab Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Mon, 4 Mar 2019 12:11:34 +0100 Subject: [PATCH] [IMP] runbot_merge: dashboard clarity * split out truly awaiting PRs from those waiting on an event of some sort * if a staging is active but doesn't have a state yet, it should be considered pending not cancelled closes #74 --- runbot_merge/models/pull_requests.py | 18 ++++++++++++++++++ runbot_merge/views/templates.xml | 13 +++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/runbot_merge/models/pull_requests.py b/runbot_merge/models/pull_requests.py index b3762710..62c01aa5 100644 --- a/runbot_merge/models/pull_requests.py +++ b/runbot_merge/models/pull_requests.py @@ -440,6 +440,24 @@ class PullRequests(models.Model): " PR is linked to an other non-ready PR" ) + @property + def blocked(self): + if self.state not in ('ready', 'merged', 'closed'): + return True + if not (self.squash or self.merge_method): + return True + + # can't be blocked on a co-dependent PR if it's a patch-* + if re.search(r':patch-\d+$', self.label): + return False + + return bool(self.search_count([ + ('id', '!=', self.id), + ('label', '=', self.label), + ('state', '!=', 'ready'), + ('priority', '!=', 0), + ])) + @api.depends('head') def _compute_statuses(self): Commits = self.env['runbot_merge.commit'] diff --git a/runbot_merge/views/templates.xml b/runbot_merge/views/templates.xml index fa60fef4..4a085ce6 100644 --- a/runbot_merge/views/templates.xml +++ b/runbot_merge/views/templates.xml @@ -53,7 +53,16 @@
Awaiting
+
Blocked
+