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(
'',
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);

View File

@ -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);
}