Feature: allow filtering for users in the public form for docgen acc course

This commit is contained in:
nobohan 2023-03-16 16:02:26 +01:00
parent 5bba1aca93
commit 1167ff25b1

View File

@ -103,6 +103,21 @@ class ListActivitiesByAccompanyingPeriodContext implements
{ {
$this->accompanyingPeriodContext->buildAdminForm($builder); $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 $builder
->add('myActivitiesOnly', CheckboxType::class, [ ->add('myActivitiesOnly', CheckboxType::class, [
'required' => false, '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 public function contextGenerationDataDenormalize(DocGeneratorTemplate $template, $entity, array $data): array
{ {
return $this->accompanyingPeriodContext->contextGenerationDataDenormalize($template, $entity, $data); return $this->accompanyingPeriodContext->contextGenerationDataDenormalize($template, $entity, $data);
@ -126,7 +136,12 @@ class ListActivitiesByAccompanyingPeriodContext implements
public function contextGenerationDataNormalize(DocGeneratorTemplate $template, $entity, array $data): array 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 public function filterActivitiesByCurrentUser(array $activities): array
@ -163,7 +178,7 @@ class ListActivitiesByAccompanyingPeriodContext implements
$activities = $this->getActivitiesSimplified($entity); $activities = $this->getActivitiesSimplified($entity);
$myActivitiesOnly = $template->getOptions()['myActivitiesOnly']; $myActivitiesOnly = $contextGenerationData['myActivitiesOnly'];
if ($myActivitiesOnly) { if ($myActivitiesOnly) {
$activities = $this->filterActivitiesByCurrentUser($activities); $activities = $this->filterActivitiesByCurrentUser($activities);
@ -171,12 +186,11 @@ class ListActivitiesByAccompanyingPeriodContext implements
$data['activities'] = $activities; $data['activities'] = $activities;
$myWorksOnly = $template->getOptions()['myWorksOnly']; $myWorksOnly = $contextGenerationData['myWorksOnly'];
if ($myWorksOnly) { if ($myWorksOnly) {
$data['course']['works'] = $this->filterWorksByCurrentUser($data['course']['works']); $data['course']['works'] = $this->filterWorksByCurrentUser($data['course']['works']);
} }
return $data; return $data;
} }
@ -212,7 +226,7 @@ class ListActivitiesByAccompanyingPeriodContext implements
public function hasPublicForm(DocGeneratorTemplate $template, $entity): bool 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 public function storeGenerated(DocGeneratorTemplate $template, StoredObject $storedObject, object $entity, array $contextGenerationData): void