mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-13 22:04:23 +00:00
remove "person" filter when a person file is opened
This commit is contained in:
parent
b856647b04
commit
650f2c8e18
@ -358,7 +358,7 @@ class SingleTaskController extends Controller
|
|||||||
$params['person'] = $person;
|
$params['person'] = $person;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->query->has('user_id')) {
|
if (!empty($request->query->get('user_id', null))) {
|
||||||
|
|
||||||
$userId = $request->query->getInt('user_id', null);
|
$userId = $request->query->getInt('user_id', null);
|
||||||
$user = $this->getDoctrine()->getManager()
|
$user = $this->getDoctrine()->getManager()
|
||||||
@ -373,7 +373,7 @@ class SingleTaskController extends Controller
|
|||||||
$params['user'] = $user;
|
$params['user'] = $user;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request->query->has('scope_id')) {
|
if (!empty($request->query->get('scope_id'))) {
|
||||||
|
|
||||||
$scopeId = $request->query->getInt('scope_id', null);
|
$scopeId = $request->query->getInt('scope_id', null);
|
||||||
$scope = $this->getDoctrine()->getManager()
|
$scope = $this->getDoctrine()->getManager()
|
||||||
@ -447,6 +447,7 @@ class SingleTaskController extends Controller
|
|||||||
|
|
||||||
// Form for filtering tasks
|
// Form for filtering tasks
|
||||||
$form = $formFactory->createNamed(null, SingleTaskListType::class, null, [
|
$form = $formFactory->createNamed(null, SingleTaskListType::class, null, [
|
||||||
|
'person' => $viewParams['person'],
|
||||||
'method' => Request::METHOD_GET,
|
'method' => Request::METHOD_GET,
|
||||||
'csrf_protection' => false
|
'csrf_protection' => false
|
||||||
]);
|
]);
|
||||||
|
@ -20,11 +20,7 @@ namespace Chill\TaskBundle\Form;
|
|||||||
use Symfony\Component\Form\AbstractType;
|
use Symfony\Component\Form\AbstractType;
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||||
use Chill\MainBundle\Entity\Scope;
|
|
||||||
use Chill\MainBundle\Entity\Center;
|
|
||||||
use Chill\MainBundle\Entity\User;
|
use Chill\MainBundle\Entity\User;
|
||||||
use Chill\MainBundle\Form\Type\ScopePickerType;
|
|
||||||
use Symfony\Component\Form\Extension\Core\Type\TextType;
|
|
||||||
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
|
||||||
use Chill\TaskBundle\Repository\SingleTaskRepository;
|
use Chill\TaskBundle\Repository\SingleTaskRepository;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
@ -35,6 +31,9 @@ use Chill\TaskBundle\Security\Authorization\TaskVoter;
|
|||||||
use Symfony\Component\Security\Core\Role\Role;
|
use Symfony\Component\Security\Core\Role\Role;
|
||||||
use Chill\TaskBundle\Entity\SingleTask;
|
use Chill\TaskBundle\Entity\SingleTask;
|
||||||
use Chill\PersonBundle\Form\Type\PickPersonType;
|
use Chill\PersonBundle\Form\Type\PickPersonType;
|
||||||
|
use Chill\PersonBundle\Entity\Person;
|
||||||
|
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
|
||||||
|
use Chill\PersonBundle\Form\DataTransformer\PersonToIdTransformer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -49,12 +48,6 @@ class SingleTaskListType extends AbstractType
|
|||||||
*/
|
*/
|
||||||
protected $em;
|
protected $em;
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @var SingleTaskRepository
|
|
||||||
*/
|
|
||||||
protected $singleTaskRepository;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @var TokenStorageInterface
|
* @var TokenStorageInterface
|
||||||
@ -85,7 +78,7 @@ class SingleTaskListType extends AbstractType
|
|||||||
$builder
|
$builder
|
||||||
->add('user_id', EntityType::class, [
|
->add('user_id', EntityType::class, [
|
||||||
'class' => User::class,
|
'class' => User::class,
|
||||||
'choices' => $this->getUsersAssigneedToTask(),
|
'choices' => $this->getUsersAssigneedToTask($options),
|
||||||
'placeholder' => 'Choose a user',
|
'placeholder' => 'Choose a user',
|
||||||
'required' => false
|
'required' => false
|
||||||
])
|
])
|
||||||
@ -94,15 +87,27 @@ class SingleTaskListType extends AbstractType
|
|||||||
'expanded' => true,
|
'expanded' => true,
|
||||||
'multiple' => true
|
'multiple' => true
|
||||||
])
|
])
|
||||||
->add('person_id', PickPersonType::class, [
|
|
||||||
'centers' => $this->authorizationHelper
|
|
||||||
->getReachableCenters(
|
|
||||||
$this->tokenStorage->getToken()->getUser(),
|
|
||||||
new Role(TaskVoter::SHOW)
|
|
||||||
),
|
|
||||||
'required' => false
|
|
||||||
])
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if ($options['person'] === null) {
|
||||||
|
$builder
|
||||||
|
->add('person_id', PickPersonType::class, [
|
||||||
|
'centers' => $this->authorizationHelper
|
||||||
|
->getReachableCenters(
|
||||||
|
$this->tokenStorage->getToken()->getUser(),
|
||||||
|
new Role(TaskVoter::SHOW)
|
||||||
|
),
|
||||||
|
'required' => false
|
||||||
|
])
|
||||||
|
;
|
||||||
|
} else {
|
||||||
|
// add a hidden field
|
||||||
|
$builder
|
||||||
|
->add('person_id', HiddenType::class);
|
||||||
|
$builder->get('person_id')
|
||||||
|
->addModelTransformer(new PersonToIdTransformer($this->em))
|
||||||
|
;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -110,7 +115,7 @@ class SingleTaskListType extends AbstractType
|
|||||||
*
|
*
|
||||||
* @return User[]
|
* @return User[]
|
||||||
*/
|
*/
|
||||||
protected function getUsersAssigneedToTask()
|
protected function getUsersAssigneedToTask($options)
|
||||||
{
|
{
|
||||||
$qb = $this->em->createQueryBuilder();
|
$qb = $this->em->createQueryBuilder();
|
||||||
$user = $this->tokenStorage->getToken()->getUser();
|
$user = $this->tokenStorage->getToken()->getUser();
|
||||||
@ -124,6 +129,13 @@ class SingleTaskListType extends AbstractType
|
|||||||
->where("user.enabled = 'TRUE'")
|
->where("user.enabled = 'TRUE'")
|
||||||
;
|
;
|
||||||
|
|
||||||
|
if (NULL !== $options['person']) {
|
||||||
|
$qb
|
||||||
|
->andWhere($qb->expr()->eq('task.person', ':person'))
|
||||||
|
->setParameter('person', $options['person'])
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ($centers as $center) {
|
foreach ($centers as $center) {
|
||||||
$circles = $this->authorizationHelper->getReachableCircles($user, $role, $center);
|
$circles = $this->authorizationHelper->getReachableCircles($user, $role, $center);
|
||||||
@ -147,8 +159,9 @@ class SingleTaskListType extends AbstractType
|
|||||||
public function configureOptions(OptionsResolver $resolver)
|
public function configureOptions(OptionsResolver $resolver)
|
||||||
{
|
{
|
||||||
$resolver
|
$resolver
|
||||||
// ->setRequired('center')
|
->setDefined('person')
|
||||||
// ->setAllowedTypes('center', [ Center::class ])
|
->setDefault('person', null)
|
||||||
|
->setAllowedTypes('person', [Person::class, 'null'])
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -145,7 +145,10 @@
|
|||||||
{{ form_start(form) }}
|
{{ form_start(form) }}
|
||||||
{{ form_row(form.user_id) }}
|
{{ form_row(form.user_id) }}
|
||||||
{{ form_row(form.status) }}
|
{{ form_row(form.status) }}
|
||||||
|
|
||||||
|
{% if form.person_id is defined %}
|
||||||
{{ form_row(form.person_id) }}
|
{{ form_row(form.person_id) }}
|
||||||
|
{% endif %}
|
||||||
<button type="submit">{{ 'Filter'|trans }}</button>
|
<button type="submit">{{ 'Filter'|trans }}</button>
|
||||||
{{ form_end(form)}}
|
{{ form_end(form)}}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user