From 9b9df10676fd7a83808aa537233c0f319706d27d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gardien?= Date: Mon, 15 Jul 2024 09:58:24 +0200 Subject: [PATCH] Use Doctrine query builder type --- src/Admin/Procuration/ProxySlotAdmin.php | 32 +++++--------------- src/Admin/Procuration/RequestSlotAdmin.php | 32 +++++--------------- src/Query/Utils/MultiColumnsSearchHelper.php | 3 +- 3 files changed, 15 insertions(+), 52 deletions(-) diff --git a/src/Admin/Procuration/ProxySlotAdmin.php b/src/Admin/Procuration/ProxySlotAdmin.php index 9078286dc69..8d24836b05c 100644 --- a/src/Admin/Procuration/ProxySlotAdmin.php +++ b/src/Admin/Procuration/ProxySlotAdmin.php @@ -2,9 +2,7 @@ namespace App\Admin\Procuration; -use App\Entity\ProcurationV2\Request; use App\Query\Utils\MultiColumnsSearchHelper; -use Doctrine\ORM\QueryBuilder; use Sonata\AdminBundle\Admin\AbstractAdmin; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Datagrid\ListMapper; @@ -13,10 +11,10 @@ use Sonata\AdminBundle\Form\Type\ModelAutocompleteType; use Sonata\AdminBundle\Route\RouteCollectionInterface; use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery; +use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQueryInterface; use Sonata\DoctrineORMAdminBundle\Filter\BooleanFilter; use Sonata\DoctrineORMAdminBundle\Filter\CallbackFilter; use Symfony\Component\Form\Extension\Core\Type\TextType; -use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; class ProxySlotAdmin extends AbstractAdmin { @@ -41,14 +39,14 @@ protected function configureFormFields(FormMapper $form): void array $properties, string $value ): void { - /** @var QueryBuilder $qb */ + /** @var ProxyQueryInterface $qb */ $qb = $admin->getDatagrid()->getQuery(); $alias = $qb->getRootAliases()[0]; $qb->join("$alias.request", 'request'); MultiColumnsSearchHelper::updateQueryBuilderForMultiColumnsSearch( - $qb, + $qb->getQueryBuilder(), $value, [ ['request.firstNames', 'request.lastName'], @@ -102,6 +100,10 @@ protected function configureDatagridFilters(DatagridMapper $filter): void return true; }, ]) + ->add('round', null, [ + 'label' => 'Tour', + 'show_filter' => true, + ]) ->add('manual', BooleanFilter::class, [ 'label' => 'Traitement manuel', 'show_filter' => true, @@ -132,24 +134,4 @@ protected function configureListFields(ListMapper $list): void ]) ; } - - /** - * @param Request $object - */ - protected function alterObject(object $object): void - { - } - - /** - * @param Request $object - */ - protected function postUpdate(object $object): void - { - } - - /** @required */ - public function setEventDispatcher(EventDispatcherInterface $eventDispatcher): void - { - $this->eventDispatcher = $eventDispatcher; - } } diff --git a/src/Admin/Procuration/RequestSlotAdmin.php b/src/Admin/Procuration/RequestSlotAdmin.php index 99cea85a20b..16083cc3d78 100644 --- a/src/Admin/Procuration/RequestSlotAdmin.php +++ b/src/Admin/Procuration/RequestSlotAdmin.php @@ -2,9 +2,7 @@ namespace App\Admin\Procuration; -use App\Entity\ProcurationV2\Request; use App\Query\Utils\MultiColumnsSearchHelper; -use Doctrine\ORM\QueryBuilder; use Sonata\AdminBundle\Admin\AbstractAdmin; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Datagrid\ListMapper; @@ -13,10 +11,10 @@ use Sonata\AdminBundle\Form\Type\ModelAutocompleteType; use Sonata\AdminBundle\Route\RouteCollectionInterface; use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery; +use Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQueryInterface; use Sonata\DoctrineORMAdminBundle\Filter\BooleanFilter; use Sonata\DoctrineORMAdminBundle\Filter\CallbackFilter; use Symfony\Component\Form\Extension\Core\Type\TextType; -use Symfony\Contracts\EventDispatcher\EventDispatcherInterface; class RequestSlotAdmin extends AbstractAdmin { @@ -41,14 +39,14 @@ protected function configureFormFields(FormMapper $form): void array $properties, string $value ): void { - /** @var QueryBuilder $qb */ + /** @var ProxyQueryInterface $qb */ $qb = $admin->getDatagrid()->getQuery(); $alias = $qb->getRootAliases()[0]; $qb->join("$alias.proxy", 'proxy'); MultiColumnsSearchHelper::updateQueryBuilderForMultiColumnsSearch( - $qb, + $qb->getQueryBuilder(), $value, [ ['proxy.firstNames', 'proxy.lastName'], @@ -102,6 +100,10 @@ protected function configureDatagridFilters(DatagridMapper $filter): void return true; }, ]) + ->add('round', null, [ + 'label' => 'Tour', + 'show_filter' => true, + ]) ->add('manual', BooleanFilter::class, [ 'label' => 'Traitement manuel', 'show_filter' => true, @@ -132,24 +134,4 @@ protected function configureListFields(ListMapper $list): void ]) ; } - - /** - * @param Request $object - */ - protected function alterObject(object $object): void - { - } - - /** - * @param Request $object - */ - protected function postUpdate(object $object): void - { - } - - /** @required */ - public function setEventDispatcher(EventDispatcherInterface $eventDispatcher): void - { - $this->eventDispatcher = $eventDispatcher; - } } diff --git a/src/Query/Utils/MultiColumnsSearchHelper.php b/src/Query/Utils/MultiColumnsSearchHelper.php index 418496cdb26..3883d3afb8f 100644 --- a/src/Query/Utils/MultiColumnsSearchHelper.php +++ b/src/Query/Utils/MultiColumnsSearchHelper.php @@ -3,12 +3,11 @@ namespace App\Query\Utils; use Doctrine\ORM\QueryBuilder; -use Sonata\AdminBundle\Datagrid\ProxyQueryInterface; class MultiColumnsSearchHelper { public static function updateQueryBuilderForMultiColumnsSearch( - QueryBuilder|ProxyQueryInterface $queryBuilder, + QueryBuilder $queryBuilder, string $searchTerm, array $mainColumns, array $additionalColumns = [],