add a filtering of tasks by center

This commit is contained in:
2018-10-18 20:51:49 +02:00
parent 7c113e3478
commit fe5f63457b
6 changed files with 47 additions and 2 deletions

View File

@@ -136,6 +136,17 @@ class SingleTaskListType extends AbstractType
'label' => 'Associated person'
])
;
$reachablesCenters = $this->getReachablesCenters();
if (count($reachablesCenters) > 1) {
$builder
->add('center_id', EntityType::class, [
'class' => \Chill\MainBundle\Entity\Center::class,
'choices' => $reachablesCenters,
'label' => 'Center',
'required' => false,
'placeholder' => 'All centers'
]);
}
} else {
// add a hidden field
$builder
@@ -144,6 +155,7 @@ class SingleTaskListType extends AbstractType
->addModelTransformer(new PersonToIdTransformer($this->em))
;
}
}
protected function getUserChoices($options)
@@ -257,6 +269,14 @@ class SingleTaskListType extends AbstractType
return $qb->getQuery()->getResult();
}
protected function getReachablesCenters()
{
$user = $this->tokenStorage->getToken()->getUser();
$role = new Role(TaskVoter::SHOW);
return $this->authorizationHelper->getReachableCenters($user, $role);
}
public function configureOptions(OptionsResolver $resolver)
{