From a199f5983ecc3e6a611f874722e24db190b174a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 22 Dec 2025 15:27:11 +0100 Subject: [PATCH] Refactor `SingleTaskType`: replace `UserPickerType` with `PickUserDynamicType` and `CenterResolverDispatcherInterface` with `CenterResolverManagerInterface`. --- phpstan.dist.neon | 1 + .../ChillTaskBundle/Form/SingleTaskType.php | 25 ++++++++++--------- .../views/SingleTask/Person/edit.html.twig | 10 ++++++++ 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/phpstan.dist.neon b/phpstan.dist.neon index 937ca63e4..ab324c896 100644 --- a/phpstan.dist.neon +++ b/phpstan.dist.neon @@ -21,6 +21,7 @@ parameters: - src/Bundle/*/src/migrations/* - src/Bundle/*/src/translations/* - src/Bundle/*/src/Resources/* + - utils/rector/src/Rector/* symfony: containerXmlPath: var/cache/dev/App_KernelDevDebugContainer.xml diff --git a/src/Bundle/ChillTaskBundle/Form/SingleTaskType.php b/src/Bundle/ChillTaskBundle/Form/SingleTaskType.php index 89f68b4d9..38432a487 100644 --- a/src/Bundle/ChillTaskBundle/Form/SingleTaskType.php +++ b/src/Bundle/ChillTaskBundle/Form/SingleTaskType.php @@ -14,11 +14,10 @@ namespace Chill\TaskBundle\Form; use Chill\MainBundle\Form\Type\ChillDateType; use Chill\MainBundle\Form\Type\ChillTextareaType; use Chill\MainBundle\Form\Type\DateIntervalType; +use Chill\MainBundle\Form\Type\PickUserDynamicType; use Chill\MainBundle\Form\Type\ScopePickerType; -use Chill\MainBundle\Form\Type\UserPickerType; -use Chill\MainBundle\Security\Resolver\CenterResolverDispatcherInterface; +use Chill\MainBundle\Security\Resolver\CenterResolverManagerInterface; use Chill\MainBundle\Security\Resolver\ScopeResolverDispatcher; -use Chill\TaskBundle\Security\Authorization\TaskVoter; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\TextType; @@ -27,15 +26,19 @@ use Symfony\Component\OptionsResolver\OptionsResolver; class SingleTaskType extends AbstractType { - public function __construct(private readonly ParameterBagInterface $parameterBag, private readonly CenterResolverDispatcherInterface $centerResolverDispatcher, private readonly ScopeResolverDispatcher $scopeResolverDispatcher) {} + public function __construct( + private readonly ParameterBagInterface $parameterBag, + private readonly CenterResolverManagerInterface $centerResolverManager, + private readonly ScopeResolverDispatcher $scopeResolverDispatcher, + ) {} public function buildForm(FormBuilderInterface $builder, array $options): void { - $center = null; $isScopeConcerned = false; + $centers = []; if (null !== $task = $options['data']) { - $center = $this->centerResolverDispatcher->resolveCenter($task); + $centers = $this->centerResolverManager->resolveCenters($task); $isScopeConcerned = $this->scopeResolverDispatcher->isConcerned($task); } @@ -44,12 +47,10 @@ class SingleTaskType extends AbstractType ->add('description', ChillTextareaType::class, [ 'required' => false, ]) - ->add('assignee', UserPickerType::class, [ + ->add('assignee', PickUserDynamicType::class, [ 'required' => false, - 'center' => $center, - 'role' => TaskVoter::SHOW, - 'placeholder' => 'Not assigned', - 'attr' => ['class' => ' select2 '], + 'suggest_myself' => true, + 'multiple' => false, ]) ->add('startDate', ChillDateType::class, [ 'required' => false, @@ -64,7 +65,7 @@ class SingleTaskType extends AbstractType if ($isScopeConcerned && $this->parameterBag->get('chill_main')['acl']['form_show_scopes']) { $builder ->add('circle', ScopePickerType::class, [ - 'center' => $center, + 'center' => $centers, 'role' => $options['role'], 'required' => true, ]); diff --git a/src/Bundle/ChillTaskBundle/Resources/views/SingleTask/Person/edit.html.twig b/src/Bundle/ChillTaskBundle/Resources/views/SingleTask/Person/edit.html.twig index 3ce9a3490..fd3327a03 100644 --- a/src/Bundle/ChillTaskBundle/Resources/views/SingleTask/Person/edit.html.twig +++ b/src/Bundle/ChillTaskBundle/Resources/views/SingleTask/Person/edit.html.twig @@ -23,6 +23,16 @@ {{ 'Edit task'|trans }} {% endblock %} +{% block css %} + {{ parent() }} + {{ encore_entry_link_tags('mod_pickentity_type') }} +{% endblock %} + +{% block js %} + {{ parent() }} + {{ encore_entry_script_tags('mod_pickentity_type') }} +{% endblock %} + {% block content %} {% include '@ChillTask/SingleTask/_edit.html.twig' %}