diff --git a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php index 2a5b2f81e..db3b5bd92 100644 --- a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php +++ b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ListActivitiesByAccompanyingPeriodContext.php @@ -103,6 +103,21 @@ class ListActivitiesByAccompanyingPeriodContext implements { $this->accompanyingPeriodContext->buildAdminForm($builder); + // $builder + // ->add('myActivitiesOnly', CheckboxType::class, [ + // 'required' => false, + // 'label' => 'docgen.myActivitiesOnly', + // ]) + // ->add('myWorksOnly', CheckboxType::class, [ + // 'required' => false, + // 'label' => 'docgen.myWorksOnly', + // ]); + } + + public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void + { + $this->accompanyingPeriodContext->buildPublicForm($builder, $template, $entity); + $builder ->add('myActivitiesOnly', CheckboxType::class, [ 'required' => false, @@ -114,11 +129,6 @@ class ListActivitiesByAccompanyingPeriodContext implements ]); } - public function buildPublicForm(FormBuilderInterface $builder, DocGeneratorTemplate $template, $entity): void - { - $this->accompanyingPeriodContext->buildPublicForm($builder, $template, $entity); - } - public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array { return $this->accompanyingPeriodContext->contextGenerationDataDenormalize($template, $entity, $data); @@ -126,7 +136,12 @@ class ListActivitiesByAccompanyingPeriodContext implements public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array { - return $this->accompanyingPeriodContext->contextGenerationDataNormalize($template, $entity, $data); + $normalized = $this->accompanyingPeriodContext->contextGenerationDataNormalize($template, $entity, $data); + foreach (['myActivitiesOnly', 'myWorksOnly'] as $k) { + $normalized[$k] = null !== ($data[$k] ?? null) ? $data[$k] : false; + } + + return $normalized; } public function filterActivitiesByCurrentUser(array $activities): array @@ -163,7 +178,7 @@ class ListActivitiesByAccompanyingPeriodContext implements $activities = $this->getActivitiesSimplified($entity); - $myActivitiesOnly = $template->getOptions()['myActivitiesOnly']; + $myActivitiesOnly = $contextGenerationData['myActivitiesOnly']; if ($myActivitiesOnly) { $activities = $this->filterActivitiesByCurrentUser($activities); @@ -171,12 +186,11 @@ class ListActivitiesByAccompanyingPeriodContext implements $data['activities'] = $activities; - $myWorksOnly = $template->getOptions()['myWorksOnly']; + $myWorksOnly = $contextGenerationData['myWorksOnly']; if ($myWorksOnly) { $data['course']['works'] = $this->filterWorksByCurrentUser($data['course']['works']); } - return $data; } @@ -212,7 +226,7 @@ class ListActivitiesByAccompanyingPeriodContext implements public function hasPublicForm(DocGeneratorTemplate $template, $entity): bool { - return $this->accompanyingPeriodContext->hasPublicForm($template, $entity); + return true; } public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void