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
|
DataTransformerInterface
|
||||||
{
|
{
|
||||||
// inject gender repository and find the active genders so that you can pass them to the ChoiceType (ordered by ordering)
|
// 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
|
public function addRole(): ?string
|
||||||
{
|
{
|
||||||
@ -79,17 +80,19 @@ class GenderFilter implements
|
|||||||
|
|
||||||
public function transformData(?array $before): array
|
public function transformData(?array $before): array
|
||||||
{
|
{
|
||||||
$transformedData = $before;
|
$transformedData['accepted_genders_entity'] = $before['accepted_genders_entity'] ?? [];
|
||||||
|
|
||||||
if (array_key_exists('accepted_genders', $before)) {
|
if (array_key_exists('accepted_genders', $before)) {
|
||||||
$genderMapping = [
|
foreach ($before['accepted_genders'] as $genderBefore) {
|
||||||
'woman' => 2,
|
foreach ($this->genderRepository->findByGenderTranslation(
|
||||||
'man' => 1,
|
match ($genderBefore) {
|
||||||
'both' => 3,
|
'both' => 'neutral',
|
||||||
'unknown' => null,
|
default => $genderBefore,
|
||||||
];
|
}
|
||||||
|
) as $gender) {
|
||||||
$transformedData['accepted_genders_entity'] = array_map(fn ($gender) => $genderMapping[$gender] ?? null, $before['accepted_genders']);
|
$transformedData['accepted_genders_entity'][] = $gender;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $transformedData;
|
return $transformedData;
|
||||||
|
@ -42,13 +42,13 @@ final class GenderFilterTest extends AbstractFilterTest
|
|||||||
{
|
{
|
||||||
return [
|
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