Fix case when there are no regroupements configured

This commit is contained in:
Julien Fastré 2025-07-02 15:35:22 +02:00
parent 2d44112d5d
commit de5b7e88ea
Signed by: julienfastre
GPG Key ID: BDE2190974723FCB
2 changed files with 11 additions and 6 deletions

View File

@ -149,7 +149,7 @@ class ExportController extends AbstractController
->createNamedBuilder( ->createNamedBuilder(
'', '',
FormType::class, FormType::class,
$defaultFormData, 'centers' === $step ? ['centers' => $defaultFormData] : $defaultFormData,
[ [
'method' => $isGenerate ? Request::METHOD_GET : Request::METHOD_POST, 'method' => $isGenerate ? Request::METHOD_GET : Request::METHOD_POST,
'csrf_protection' => !$isGenerate, 'csrf_protection' => !$isGenerate,
@ -352,7 +352,7 @@ class ExportController extends AbstractController
$formCenters->submit($dataCenters); $formCenters->submit($dataCenters);
$dataAsCollection = $formCenters->getData()['centers']; $dataAsCollection = $formCenters->getData()['centers'];
$centers = $dataAsCollection['centers']; $centers = $dataAsCollection['centers'];
$regroupments = $dataAsCollection['regroupments']; $regroupments = $dataAsCollection['regroupments'] ?? [];
$dataCenters = [ $dataCenters = [
'centers' => $centers instanceof Collection ? $centers->toArray() : $centers, 'centers' => $centers instanceof Collection ? $centers->toArray() : $centers,
'regroupments' => $regroupments instanceof Collection ? $regroupments->toArray() : $regroupments, 'regroupments' => $regroupments instanceof Collection ? $regroupments->toArray() : $regroupments,
@ -377,7 +377,7 @@ class ExportController extends AbstractController
} }
return [ return [
'centers' => ['centers' => $dataCenters['centers'], 'regroupments' => $dataCenters['regroupments'] ?? []], 'centers' => ['centers' => $dataCenters['centers'], 'regroupments' => $dataCenters['regroupments']],
'export' => $dataExport['export']['export'] ?? [], 'export' => $dataExport['export']['export'] ?? [],
'filters' => $dataExport['export']['filters'] ?? [], 'filters' => $dataExport['export']['filters'] ?? [],
'aggregators' => $dataExport['export']['aggregators'] ?? [], 'aggregators' => $dataExport['export']['aggregators'] ?? [],
@ -404,7 +404,12 @@ class ExportController extends AbstractController
/** @var ExportManager $exportManager */ /** @var ExportManager $exportManager */
$exportManager = $this->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()) { if (Request::METHOD_POST === $request->getMethod()) {
$form->handleRequest($request); $form->handleRequest($request);

View File

@ -147,12 +147,12 @@ final readonly class ExportFormHelper
*/ */
public function getPickedCenters(array $data): array 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'); throw new \RuntimeException('array has not the expected shape');
} }
$centers = $data['centers'] instanceof Collection ? $data['centers']->toArray() : $data['centers']; $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); return $this->centerRegroupementResolver->resolveCenters($regroupments, $centers);
} }