mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-26 00:32:42 +01:00
Don't downgrade accepts on update (fix "sticky accept")
Summary: Fixes T12496. Sticky accept was accidentally impacted by the "void" changes in D17566. Instead, don't always downgrade all accepts/rejects: on update, we only want to downgrade accepts. Test Plan: - With sticky accept off, updated an accepted revision: new state is "needs review". - With sticky accept on, updated an accepted revision: new state is "accepted" (sticky accept working correctly). - Did "reject" + "request review" to make sure that still works, worked fine. Reviewers: chad Reviewed By: chad Maniphest Tasks: T12496 Differential Revision: https://secure.phabricator.com/D17605
This commit is contained in:
parent
163e1ec442
commit
9ebb5f8cda
2 changed files with 15 additions and 5 deletions
|
@ -339,12 +339,22 @@ final class DifferentialTransactionEditor
|
|||
}
|
||||
}
|
||||
|
||||
if ($downgrade_accepts || $downgrade_rejects) {
|
||||
$downgrade = array();
|
||||
if ($downgrade_accepts) {
|
||||
$downgrade[] = DifferentialReviewerStatus::STATUS_ACCEPTED;
|
||||
}
|
||||
|
||||
if ($downgrade_accepts) {
|
||||
$downgrade[] = DifferentialReviewerStatus::STATUS_REJECTED;
|
||||
}
|
||||
|
||||
if ($downgrade) {
|
||||
$void_type = DifferentialRevisionVoidTransaction::TRANSACTIONTYPE;
|
||||
|
||||
$results[] = id(new DifferentialTransaction())
|
||||
->setTransactionType($void_type)
|
||||
->setIgnoreOnNoEffect(true)
|
||||
->setNewValue(true);
|
||||
->setNewValue($downgrade);
|
||||
}
|
||||
|
||||
$is_commandeer = false;
|
||||
|
|
|
@ -28,7 +28,7 @@ final class DifferentialRevisionVoidTransaction
|
|||
AND reviewerStatus IN (%Ls)',
|
||||
$table_name,
|
||||
$object->getPHID(),
|
||||
$this->getVoidableStatuses());
|
||||
$value);
|
||||
|
||||
return ipull($rows, 'reviewerPHID');
|
||||
}
|
||||
|
@ -47,11 +47,11 @@ final class DifferentialRevisionVoidTransaction
|
|||
'UPDATE %T SET voidedPHID = %s
|
||||
WHERE revisionPHID = %s
|
||||
AND voidedPHID IS NULL
|
||||
AND reviewerStatus IN (%Ls)',
|
||||
AND reviewerPHID IN (%Ls)',
|
||||
$table_name,
|
||||
$this->getActingAsPHID(),
|
||||
$object->getPHID(),
|
||||
$this->getVoidableStatuses());
|
||||
$value);
|
||||
}
|
||||
|
||||
public function shouldHide() {
|
||||
|
|
Loading…
Reference in a new issue