From 4375ecf49a4b0364f55a08cf895996596bb7ff78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 19 Oct 2023 17:43:32 +0200 Subject: [PATCH] [export controller] skip the page "select a center" when the configuration value of `filter_stats_by_center` is set to false --- .../Controller/ExportController.php | 28 +++++++++++++++---- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Controller/ExportController.php b/src/Bundle/ChillMainBundle/Controller/ExportController.php index abae07f9c..3aaac9a68 100644 --- a/src/Bundle/ChillMainBundle/Controller/ExportController.php +++ b/src/Bundle/ChillMainBundle/Controller/ExportController.php @@ -27,6 +27,7 @@ use Chill\MainBundle\Security\Authorization\SavedExportVoter; use Doctrine\ORM\EntityManagerInterface; use Psr\Log\LoggerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; +use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\FormFactoryInterface; @@ -46,6 +47,8 @@ use Symfony\Contracts\Translation\TranslatorInterface; */ class ExportController extends AbstractController { + private readonly bool $filterStatsByCenters; + public function __construct( private readonly ChillRedis $redis, private readonly ExportManager $exportManager, @@ -56,8 +59,11 @@ class ExportController extends AbstractController private readonly EntityManagerInterface $entityManager, private readonly ExportFormHelper $exportFormHelper, private readonly SavedExportRepositoryInterface $savedExportRepository, - private readonly Security $security - ) {} + private readonly Security $security, + ParameterBagInterface $parameterBag, + ) { + $this->filterStatsByCenters = $parameterBag->get('chill_main')['acl']['filter_stats_by_center']; + } /** * @\Symfony\Component\Routing\Annotation\Route(path="/{_locale}/exports/download/{alias}", name="chill_main_export_download", methods={"GET"}) @@ -484,9 +490,13 @@ class ExportController extends AbstractController $alias = $rawData['alias']; - $formCenters = $this->createCreateFormExport($alias, 'generate_centers', [], $savedExport); - $formCenters->submit($rawData['centers']); - $dataCenters = $formCenters->getData(); + if ($this->filterStatsByCenters) { + $formCenters = $this->createCreateFormExport($alias, 'generate_centers', [], $savedExport); + $formCenters->submit($rawData['centers']); + $dataCenters = $formCenters->getData(); + } else { + $dataCenters = ['centers' => []]; + } $formExport = $this->createCreateFormExport($alias, 'generate_export', $dataCenters, $savedExport); $formExport->submit($rawData['export']); @@ -513,6 +523,14 @@ class ExportController extends AbstractController */ private function selectCentersStep(Request $request, DirectExportInterface|ExportInterface $export, $alias, SavedExport $savedExport = null) { + if (!$this->filterStatsByCenters) { + return $this->redirectToRoute('chill_main_export_new', [ + 'step' => $this->getNextStep('centers', $export), + 'alias' => $alias, + 'from_saved' => $request->get('from_saved', ''), + ]); + } + /** @var \Chill\MainBundle\Export\ExportManager $exportManager */ $exportManager = $this->exportManager;