Differential D17252 Diff 41494 src/applications/diffusion/query/DiffusionCommitRequiredActionResultBucket.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/diffusion/query/DiffusionCommitRequiredActionResultBucket.php
| Show All 28 Lines | protected function buildResultGroups( | ||||
| $groups = array(); | $groups = array(); | ||||
| $groups[] = $this->newGroup() | $groups[] = $this->newGroup() | ||||
| ->setName(pht('Needs Attention')) | ->setName(pht('Needs Attention')) | ||||
| ->setNoDataString(pht('None of your commits have active concerns.')) | ->setNoDataString(pht('None of your commits have active concerns.')) | ||||
| ->setObjects($this->filterConcernRaised($phids)); | ->setObjects($this->filterConcernRaised($phids)); | ||||
| $groups[] = $this->newGroup() | $groups[] = $this->newGroup() | ||||
| ->setName(pht('Needs Verification')) | |||||
| ->setNoDataString(pht('No commits are awaiting your verification.')) | |||||
| ->setObjects($this->filterNeedsVerification($phids)); | |||||
| $groups[] = $this->newGroup() | |||||
| ->setName(pht('Ready to Audit')) | ->setName(pht('Ready to Audit')) | ||||
| ->setNoDataString(pht('No commits are waiting for you to audit them.')) | ->setNoDataString(pht('No commits are waiting for you to audit them.')) | ||||
| ->setObjects($this->filterShouldAudit($phids)); | ->setObjects($this->filterShouldAudit($phids)); | ||||
| $groups[] = $this->newGroup() | $groups[] = $this->newGroup() | ||||
| ->setName(pht('Waiting on Authors')) | ->setName(pht('Waiting on Authors')) | ||||
| ->setNoDataString(pht('None of your audits are waiting on authors.')) | ->setNoDataString(pht('None of your audits are waiting on authors.')) | ||||
| ->setObjects($this->filterWaitingOnAuthors($phids)); | ->setObjects($this->filterWaitingOnAuthors($phids)); | ||||
| Show All 32 Lines | foreach ($objects as $key => $object) { | ||||
| $results[$key] = $object; | $results[$key] = $object; | ||||
| unset($this->objects[$key]); | unset($this->objects[$key]); | ||||
| } | } | ||||
| return $results; | return $results; | ||||
| } | } | ||||
| private function filterNeedsVerification(array $phids) { | |||||
| $results = array(); | |||||
| $objects = $this->objects; | |||||
| $status_verify = PhabricatorAuditCommitStatusConstants::NEEDS_VERIFICATION; | |||||
| $has_concern = array( | |||||
| PhabricatorAuditStatusConstants::CONCERNED, | |||||
| ); | |||||
| $has_concern = array_fuse($has_concern); | |||||
| foreach ($objects as $key => $object) { | |||||
| if (isset($phids[$object->getAuthorPHID()])) { | |||||
| continue; | |||||
| } | |||||
| if ($object->getAuditStatus() != $status_verify) { | |||||
| continue; | |||||
| } | |||||
| if (!$this->hasAuditorsWithStatus($object, $phids, $has_concern)) { | |||||
| continue; | |||||
| } | |||||
| $results[$key] = $object; | |||||
| unset($this->objects[$key]); | |||||
| } | |||||
| return $results; | |||||
| } | |||||
| private function filterShouldAudit(array $phids) { | private function filterShouldAudit(array $phids) { | ||||
| $results = array(); | $results = array(); | ||||
| $objects = $this->objects; | $objects = $this->objects; | ||||
| $should_audit = array( | $should_audit = array( | ||||
| PhabricatorAuditStatusConstants::AUDIT_REQUIRED, | PhabricatorAuditStatusConstants::AUDIT_REQUIRED, | ||||
| PhabricatorAuditStatusConstants::AUDIT_REQUESTED, | PhabricatorAuditStatusConstants::AUDIT_REQUESTED, | ||||
| ); | ); | ||||
| Show All 34 Lines | final class DiffusionCommitRequiredActionResultBucket | ||||
| } | } | ||||
| private function filterWaitingOnAuditors(array $phids) { | private function filterWaitingOnAuditors(array $phids) { | ||||
| $results = array(); | $results = array(); | ||||
| $objects = $this->objects; | $objects = $this->objects; | ||||
| $status_waiting = array( | $status_waiting = array( | ||||
| PhabricatorAuditCommitStatusConstants::NEEDS_AUDIT, | PhabricatorAuditCommitStatusConstants::NEEDS_AUDIT, | ||||
| PhabricatorAuditCommitStatusConstants::NEEDS_VERIFICATION, | |||||
| PhabricatorAuditCommitStatusConstants::PARTIALLY_AUDITED, | PhabricatorAuditCommitStatusConstants::PARTIALLY_AUDITED, | ||||
| ); | ); | ||||
| $status_waiting = array_fuse($status_waiting); | $status_waiting = array_fuse($status_waiting); | ||||
| foreach ($objects as $key => $object) { | foreach ($objects as $key => $object) { | ||||
| if (empty($status_waiting[$object->getAuditStatus()])) { | if (empty($status_waiting[$object->getAuditStatus()])) { | ||||
| continue; | continue; | ||||
| } | } | ||||
| Show All 9 Lines | |||||