mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-23 07:12:41 +01:00
After "Request Review", move revisions with voided "Accepts" into "Ready to Review", not "Waiting on Other Reviewers"
Summary: Depends on D18756. Fixes T12539. See PHI190. Currently, when this occurs: - Alice accepts. - Bailey requests review. - Alice views her dashboard. ...the revision appears in "Waiting on Other Reviewers" (regardless of whether other reviewers actually exist or not). Instead, ignore these voided/non-current accepts and let the revisions appear in "Ready to Review", which is more natural. Test Plan: Went through the steps above. On `master`, saw revision in "Waiting on Other Reviewers". After patch, saw it in "Ready to Review". Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T12539 Differential Revision: https://secure.phabricator.com/D18757
This commit is contained in:
parent
6d36eb9113
commit
6ecdadb76a
2 changed files with 21 additions and 2 deletions
|
@ -123,6 +123,14 @@ final class DifferentialRevisionRequiredActionResultBucket
|
||||||
$reviewing = array(
|
$reviewing = array(
|
||||||
DifferentialReviewerStatus::STATUS_ADDED,
|
DifferentialReviewerStatus::STATUS_ADDED,
|
||||||
DifferentialReviewerStatus::STATUS_COMMENTED,
|
DifferentialReviewerStatus::STATUS_COMMENTED,
|
||||||
|
|
||||||
|
// If an author has used "Request Review" to put an accepted revision
|
||||||
|
// back into the "Needs Review" state, include "Accepted" reviewers
|
||||||
|
// whose reviews have been voided in the "Should Review" bucket.
|
||||||
|
|
||||||
|
// If we don't do this, they end up in "Waiting on Other Reviewers",
|
||||||
|
// even if there are no other reviewers.
|
||||||
|
DifferentialReviewerStatus::STATUS_ACCEPTED,
|
||||||
);
|
);
|
||||||
$reviewing = array_fuse($reviewing);
|
$reviewing = array_fuse($reviewing);
|
||||||
|
|
||||||
|
@ -130,7 +138,7 @@ final class DifferentialRevisionRequiredActionResultBucket
|
||||||
|
|
||||||
$results = array();
|
$results = array();
|
||||||
foreach ($objects as $key => $object) {
|
foreach ($objects as $key => $object) {
|
||||||
if (!$this->hasReviewersWithStatus($object, $phids, $reviewing)) {
|
if (!$this->hasReviewersWithStatus($object, $phids, $reviewing, false)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,7 +53,8 @@ abstract class DifferentialRevisionResultBucket
|
||||||
protected function hasReviewersWithStatus(
|
protected function hasReviewersWithStatus(
|
||||||
DifferentialRevision $revision,
|
DifferentialRevision $revision,
|
||||||
array $phids,
|
array $phids,
|
||||||
array $statuses) {
|
array $statuses,
|
||||||
|
$current = null) {
|
||||||
|
|
||||||
foreach ($revision->getReviewers() as $reviewer) {
|
foreach ($revision->getReviewers() as $reviewer) {
|
||||||
$reviewer_phid = $reviewer->getReviewerPHID();
|
$reviewer_phid = $reviewer->getReviewerPHID();
|
||||||
|
@ -66,6 +67,16 @@ abstract class DifferentialRevisionResultBucket
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($current !== null) {
|
||||||
|
if ($status == DifferentialReviewerStatus::STATUS_ACCEPTED) {
|
||||||
|
$diff_phid = $revision->getActiveDiffPHID();
|
||||||
|
$is_current = $reviewer->isAccepted($diff_phid);
|
||||||
|
if ($is_current !== $current) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue