diff --git a/src/Bundle/ChillMainBundle/Controller/ExportController.php b/src/Bundle/ChillMainBundle/Controller/ExportController.php index c06478717..693c0e55e 100644 --- a/src/Bundle/ChillMainBundle/Controller/ExportController.php +++ b/src/Bundle/ChillMainBundle/Controller/ExportController.php @@ -149,7 +149,7 @@ class ExportController extends AbstractController ->createNamedBuilder( '', FormType::class, - $defaultFormData, + 'centers' === $step ? ['centers' => $defaultFormData] : $defaultFormData, [ 'method' => $isGenerate ? Request::METHOD_GET : Request::METHOD_POST, 'csrf_protection' => !$isGenerate, @@ -352,7 +352,7 @@ class ExportController extends AbstractController $formCenters->submit($dataCenters); $dataAsCollection = $formCenters->getData()['centers']; $centers = $dataAsCollection['centers']; - $regroupments = $dataAsCollection['regroupments']; + $regroupments = $dataAsCollection['regroupments'] ?? []; $dataCenters = [ 'centers' => $centers instanceof Collection ? $centers->toArray() : $centers, 'regroupments' => $regroupments instanceof Collection ? $regroupments->toArray() : $regroupments, @@ -377,7 +377,7 @@ class ExportController extends AbstractController } return [ - 'centers' => ['centers' => $dataCenters['centers'], 'regroupments' => $dataCenters['regroupments'] ?? []], + 'centers' => ['centers' => $dataCenters['centers'], 'regroupments' => $dataCenters['regroupments']], 'export' => $dataExport['export']['export'] ?? [], 'filters' => $dataExport['export']['filters'] ?? [], 'aggregators' => $dataExport['export']['aggregators'] ?? [], @@ -404,7 +404,12 @@ class ExportController extends AbstractController /** @var ExportManager $exportManager */ $exportManager = $this->exportManager; - $form = $this->createCreateFormExport($alias, 'centers', [], $savedExport); + $form = $this->createCreateFormExport( + $alias, + 'centers', + $this->exportFormHelper->getDefaultData('centers', $export, []), + $savedExport + ); if (Request::METHOD_POST === $request->getMethod()) { $form->handleRequest($request); diff --git a/src/Bundle/ChillMainBundle/Export/ExportFormHelper.php b/src/Bundle/ChillMainBundle/Export/ExportFormHelper.php index 17a22430f..7bc7e9fc5 100644 --- a/src/Bundle/ChillMainBundle/Export/ExportFormHelper.php +++ b/src/Bundle/ChillMainBundle/Export/ExportFormHelper.php @@ -147,12 +147,12 @@ final readonly class ExportFormHelper */ public function getPickedCenters(array $data): array { - if (!array_key_exists('centers', $data) || !array_key_exists('regroupments', $data)) { + if (!array_key_exists('centers', $data)) { throw new \RuntimeException('array has not the expected shape'); } $centers = $data['centers'] instanceof Collection ? $data['centers']->toArray() : $data['centers']; - $regroupments = $data['regroupments'] instanceof Collection ? $data['regroupments']->toArray() : $data['regroupments']; + $regroupments = ($data['regroupments'] ?? []) instanceof Collection ? $data['regroupments']->toArray() : ($data['regroupments'] ?? []); return $this->centerRegroupementResolver->resolveCenters($regroupments, $centers); }