mirror of
				https://gitlab.com/Chill-Projet/chill-bundles.git
				synced 2025-10-31 17:28:23 +00:00 
			
		
		
		
	Fix transformation of data in gender filter
This commit is contained in:
		| @@ -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'], | ||||
|             ], | ||||
|         ]; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user