mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-20 05:42:40 +01:00
Fix handle loads in ManiphestTaskListView
Summary: Fixes T4095. Fixes T3817. - The batch editor has some funky handle code which misses projects, share that. - Remove some hacks for T3817 that should be good now. Test Plan: Looked at batch editor, saw projects. Looked at task list. Reviewers: btrahan Reviewed By: btrahan CC: aran, martin.schulz Maniphest Tasks: T3817, T4095 Differential Revision: https://secure.phabricator.com/D7578
This commit is contained in:
parent
fb6e38548b
commit
626b3dab3b
3 changed files with 30 additions and 32 deletions
|
@ -55,8 +55,7 @@ final class ManiphestBatchEditController extends ManiphestController {
|
|||
->setURI('/maniphest/?ids='.$task_ids);
|
||||
}
|
||||
|
||||
$handle_phids = mpull($tasks, 'getOwnerPHID');
|
||||
$handles = $this->loadViewerHandles($handle_phids);
|
||||
$handles = ManiphestTaskListView::loadTaskHandles($user, $tasks);
|
||||
|
||||
$list = new ManiphestTaskListView();
|
||||
$list->setTasks($tasks);
|
||||
|
|
|
@ -40,7 +40,7 @@ final class ManiphestTaskListController
|
|||
$group_parameter = nonempty($query->getParameter('group'), 'priority');
|
||||
$order_parameter = nonempty($query->getParameter('order'), 'priority');
|
||||
|
||||
$handles = $this->loadTaskHandles($tasks);
|
||||
$handles = ManiphestTaskListView::loadTaskHandles($viewer, $tasks);
|
||||
$groups = $this->groupTasks(
|
||||
$tasks,
|
||||
$group_parameter,
|
||||
|
@ -114,30 +114,6 @@ final class ManiphestTaskListController
|
|||
));
|
||||
}
|
||||
|
||||
private function loadTaskHandles(array $tasks) {
|
||||
assert_instances_of($tasks, 'ManiphestTask');
|
||||
|
||||
$phids = array();
|
||||
foreach ($tasks as $task) {
|
||||
$assigned_phid = $task->getOwnerPHID();
|
||||
if ($assigned_phid) {
|
||||
$phids[] = $assigned_phid;
|
||||
}
|
||||
foreach ($task->getProjectPHIDs() as $project_phid) {
|
||||
$phids[] = $project_phid;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$phids) {
|
||||
return array();
|
||||
}
|
||||
|
||||
return id(new PhabricatorHandleQuery())
|
||||
->setViewer($this->getRequest()->getUser())
|
||||
->withPHIDs($phids)
|
||||
->execute();
|
||||
}
|
||||
|
||||
private function groupTasks(array $tasks, $group, array $handles) {
|
||||
assert_instances_of($tasks, 'ManiphestTask');
|
||||
assert_instances_of($handles, 'PhabricatorObjectHandle');
|
||||
|
|
|
@ -53,12 +53,9 @@ final class ManiphestTaskListView extends ManiphestView {
|
|||
$item->setHref('/T'.$task->getID());
|
||||
|
||||
if ($task->getOwnerPHID()) {
|
||||
$owner = idx($handles, $task->getOwnerPHID());
|
||||
// TODO: This should be guaranteed, see T3817.
|
||||
if ($owner) {
|
||||
$owner = $handles[$task->getOwnerPHID()];
|
||||
$item->addByline(pht('Assigned: %s', $owner->renderLink()));
|
||||
}
|
||||
}
|
||||
|
||||
$status = $task->getStatus();
|
||||
if ($status != ManiphestTaskStatus::STATUS_OPEN) {
|
||||
|
@ -109,4 +106,30 @@ final class ManiphestTaskListView extends ManiphestView {
|
|||
return $list;
|
||||
}
|
||||
|
||||
public static function loadTaskHandles(
|
||||
PhabricatorUser $viewer,
|
||||
array $tasks) {
|
||||
assert_instances_of($tasks, 'ManiphestTask');
|
||||
|
||||
$phids = array();
|
||||
foreach ($tasks as $task) {
|
||||
$assigned_phid = $task->getOwnerPHID();
|
||||
if ($assigned_phid) {
|
||||
$phids[] = $assigned_phid;
|
||||
}
|
||||
foreach ($task->getProjectPHIDs() as $project_phid) {
|
||||
$phids[] = $project_phid;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$phids) {
|
||||
return array();
|
||||
}
|
||||
|
||||
return id(new PhabricatorHandleQuery())
|
||||
->setViewer($viewer)
|
||||
->withPHIDs($phids)
|
||||
->execute();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue