From 97782ef04437ff92cd3fba4b4628272e8f6cc790 Mon Sep 17 00:00:00 2001 From: Ratmir Karabut Date: Fri, 18 Feb 2022 15:19:47 -0500 Subject: [PATCH] Bug 103866: show bugs blocked by unresolved dependencies --- Bugzilla/Field.pm | 2 ++ Bugzilla/Search.pm | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Bugzilla/Field.pm b/Bugzilla/Field.pm index 24ee892cb3..e2eb1b0c63 100644 --- a/Bugzilla/Field.pm +++ b/Bugzilla/Field.pm @@ -539,6 +539,8 @@ use constant DEFAULT_FIELDS => ( type => FIELD_TYPE_DATETIME }, {name => 'comment_tag', desc => 'Comment Tag'}, + {name => 'blocked_somewhere', desc => 'Blocked Somewhere', + is_numeric => 1}, { name => 'triage_owner', desc => 'Triage Owner', diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm index 7afcaf77bf..2f0f7d6772 100644 --- a/Bugzilla/Search.pm +++ b/Bugzilla/Search.pm @@ -331,6 +331,7 @@ use constant OPERATOR_FIELD_OVERRIDE => { {_non_changed => \&_last_visit_ts, _default => \&_invalid_operator,}, bug_interest_ts => {_non_changed => \&_bug_interest_ts, _default => \&_invalid_operator,}, + blocked_somewhere => { _default => \&_blocked_somewhere,}, triage_owner => {_non_changed => \&_triage_owner_nonchanged,}, # Custom Fields @@ -625,6 +626,14 @@ sub COLUMNS { last_visit_ts => 'bug_user_last_visit.last_visit_ts', bug_interest_ts => 'bug_interest.modification_time', assignee_last_login => 'assignee.last_seen_date', + blocked_somewhere => + "(CASE WHEN bugs.bug_id IN" + . " (SELECT blocked FROM dependencies JOIN bugs ON (dependencies.dependson = bugs.bug_id)" + . " WHERE bug_status IN" + . " (SELECT value FROM bug_status WHERE is_open = 1) GROUP BY blocked)" + . " THEN 1" + . " ELSE 0" + . " END)", ); if ($user->id) { @@ -2953,6 +2962,12 @@ sub _days_elapsed { . $dbh->sql_to_days('bugs.delta_ts') . ")"; } +sub _blocked_somewhere { + my ($self, $args) = @_; + + $args->{full_field} = $self->COLUMNS->{blocked_somewhere}->{name}; +} + sub _assignee_last_login { my ($self, $args) = @_;