mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-06-07 18:44:08 +00:00
Fix transformation of data in gender filter
This commit is contained in:
parent
4d8bcc5a5a
commit
73b0dd6009
@ -30,7 +30,8 @@ class GenderFilter implements
|
||||
DataTransformerInterface
|
||||
{
|
||||
// inject gender repository and find the active genders so that you can pass them to the ChoiceType (ordered by ordering)
|
||||
public function __construct(private readonly TranslatorInterface $translator, private readonly TranslatableStringHelperInterface $translatableStringHelper, private readonly GenderRepository $genderRepository) {}
|
||||
public function __construct(private readonly TranslatorInterface $translator, private readonly TranslatableStringHelperInterface $translatableStringHelper,
|
||||
private readonly GenderRepository $genderRepository) {}
|
||||
|
||||
public function addRole(): ?string
|
||||
{
|
||||
@ -79,17 +80,19 @@ class GenderFilter implements
|
||||
|
||||
public function transformData(?array $before): array
|
||||
{
|
||||
$transformedData = $before;
|
||||
$transformedData['accepted_genders_entity'] = $before['accepted_genders_entity'] ?? [];
|
||||
|
||||
if (array_key_exists('accepted_genders', $before)) {
|
||||
$genderMapping = [
|
||||
'woman' => 2,
|
||||
'man' => 1,
|
||||
'both' => 3,
|
||||
'unknown' => null,
|
||||
];
|
||||
|
||||
$transformedData['accepted_genders_entity'] = array_map(fn ($gender) => $genderMapping[$gender] ?? null, $before['accepted_genders']);
|
||||
foreach ($before['accepted_genders'] as $genderBefore) {
|
||||
foreach ($this->genderRepository->findByGenderTranslation(
|
||||
match ($genderBefore) {
|
||||
'both' => 'neutral',
|
||||
default => $genderBefore,
|
||||
}
|
||||
) as $gender) {
|
||||
$transformedData['accepted_genders_entity'][] = $gender;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $transformedData;
|
||||
|
@ -42,13 +42,13 @@ final class GenderFilterTest extends AbstractFilterTest
|
||||
{
|
||||
return [
|
||||
[
|
||||
'accepted_genders' => [GenderEnum::FEMALE],
|
||||
'accepted_genders' => ['man'],
|
||||
],
|
||||
[
|
||||
'accepted_genders' => [GenderEnum::MALE],
|
||||
'accepted_genders' => ['woman'],
|
||||
],
|
||||
[
|
||||
'accepted_genders' => [GenderEnum::MALE, 'both'],
|
||||
'accepted_genders' => ['man', 'both'],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user