diff --git a/src/Bundle/ChillMainBundle/Repository/GenderRepository.php b/src/Bundle/ChillMainBundle/Repository/GenderRepository.php index d446dbcca..56dcd1a4b 100644 --- a/src/Bundle/ChillMainBundle/Repository/GenderRepository.php +++ b/src/Bundle/ChillMainBundle/Repository/GenderRepository.php @@ -34,4 +34,14 @@ class GenderRepository extends ServiceEntityRepository ->getQuery() ->getResult(); } + + public function findByGenderTranslation($gender): array + { + return $this->createQueryBuilder('g') + ->select('g') + ->where('g.genderTranslation = :gender') + ->setParameter('gender', $gender) + ->getQuery() + ->getResult(); + } } diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php index 535d7d5e5..c5cb71d60 100644 --- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php +++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadPeople.php @@ -275,7 +275,7 @@ class LoadPeople extends AbstractFixture implements ContainerAwareInterface, Ord */ public function getRandomGender(): string { - return $this->genders[array_rand($this->genders)->value]; + return $this->genders[array_rand($this->genders)]; } /** diff --git a/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/GenderFilter.php b/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/GenderFilter.php index 18faed6d2..b85e53dd0 100644 --- a/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/GenderFilter.php +++ b/src/Bundle/ChillPersonBundle/Export/Filter/PersonFilters/GenderFilter.php @@ -30,8 +30,11 @@ 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 { @@ -44,7 +47,7 @@ class GenderFilter implements $isIn = $qb->expr()->in('person.gender', ':person_gender'); $acceptedGenders = $data['accepted_genders_entity']; - $nullIncluded = in_array(null, $acceptedGenders, true); + $nullIncluded = in_array(null, $acceptedGenders ?? [], true); if (!$nullIncluded) { $clause = $isIn; @@ -53,7 +56,7 @@ class GenderFilter implements } $qb->andWhere($clause); - $qb->setParameter('person_gender', array_filter($acceptedGenders, fn ($gender) => null !== $gender)); + $qb->setParameter('person_gender', array_filter($acceptedGenders ?? [], fn ($gender) => null !== $gender)); } public function applyOn() @@ -80,6 +83,7 @@ class GenderFilter implements public function transformData(?array $before): array { + $transformedData = []; $transformedData['accepted_genders_entity'] = $before['accepted_genders_entity'] ?? []; if (array_key_exists('accepted_genders', $before)) { diff --git a/src/Bundle/ChillPersonBundle/Search/PersonSearch.php b/src/Bundle/ChillPersonBundle/Search/PersonSearch.php index 4e16bfb56..8462d5a32 100644 --- a/src/Bundle/ChillPersonBundle/Search/PersonSearch.php +++ b/src/Bundle/ChillPersonBundle/Search/PersonSearch.php @@ -39,12 +39,12 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf public function __construct( private readonly \Twig\Environment $templating, - private readonly ExtractDateFromPattern $extractDateFromPattern, - private readonly ExtractPhonenumberFromPattern $extractPhonenumberFromPattern, - private readonly PaginatorFactory $paginatorFactory, - private readonly PersonACLAwareRepositoryInterface $personACLAwareRepository, - private readonly GenderRepository $genderRepository, - ) {} + private readonly ExtractDateFromPattern $extractDateFromPattern, + private readonly ExtractPhonenumberFromPattern $extractPhonenumberFromPattern, + private readonly PaginatorFactory $paginatorFactory, + private readonly PersonACLAwareRepositoryInterface $personACLAwareRepository, + private readonly GenderRepository $genderRepository, + ) {} public function buildForm(FormBuilderInterface $builder) { @@ -112,6 +112,7 @@ class PersonSearch extends AbstractSearch implements HasAdvancedSearchFormInterf $string .= !isset($data['phonenumber']) ? '' : 'phonenumber:'.$data['phonenumber']->getNationalNumber(); $string .= !isset($data['gender']) ? '' : 'gender:"'.$data['gender']->getId().'"'; + return $string; } diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/PersonFilters/GenderFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/PersonFilters/GenderFilterTest.php index b3e7a04db..7273e9abc 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/PersonFilters/GenderFilterTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/PersonFilters/GenderFilterTest.php @@ -11,7 +11,6 @@ declare(strict_types=1); namespace Chill\PersonBundle\Tests\Export\Filter\PersonFilters; -use Chill\MainBundle\Entity\GenderEnum; use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\PersonBundle\Entity\Person; use Chill\PersonBundle\Export\Filter\PersonFilters\GenderFilter;