From 63ed046c9aef27ba53b3042e2146133cafcb59e3 Mon Sep 17 00:00:00 2001 From: Julie Lenaerts Date: Mon, 25 Nov 2024 17:44:59 +0100 Subject: [PATCH] Normalize genderEntity for document generation --- src/Bundle/ChillMainBundle/Entity/Gender.php | 6 +-- .../Normalizer/GenderDocGenNormalizer.php | 39 +++++++++++++++++++ .../Normalizer/PersonDocGenNormalizer.php | 3 +- 3 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 src/Bundle/ChillPersonBundle/Serializer/Normalizer/GenderDocGenNormalizer.php diff --git a/src/Bundle/ChillMainBundle/Entity/Gender.php b/src/Bundle/ChillMainBundle/Entity/Gender.php index 59c0bd134..d1baad400 100644 --- a/src/Bundle/ChillMainBundle/Entity/Gender.php +++ b/src/Bundle/ChillMainBundle/Entity/Gender.php @@ -21,13 +21,13 @@ use Symfony\Component\Validator\Constraints as Assert; #[ORM\Table(name: 'chill_main_gender')] class Gender { - #[Serializer\Groups(['read'])] + #[Serializer\Groups(['read', 'docgen:read'])] #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: \Doctrine\DBAL\Types\Types::INTEGER)] private ?int $id = null; - #[Serializer\Groups(['read'])] + #[Serializer\Groups(['read', 'docgen:read'])] #[ORM\Column(type: \Doctrine\DBAL\Types\Types::JSON)] private array $label = []; @@ -36,7 +36,7 @@ class Gender private bool $active = true; #[Assert\NotNull(message: 'You must choose a gender translation')] - #[Serializer\Groups(['read'])] + #[Serializer\Groups(['read', 'docgen:read'])] #[ORM\Column(type: \Doctrine\DBAL\Types\Types::STRING, enumType: GenderEnum::class)] private GenderEnum $genderTranslation; diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/GenderDocGenNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/GenderDocGenNormalizer.php new file mode 100644 index 000000000..5af99be5a --- /dev/null +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/GenderDocGenNormalizer.php @@ -0,0 +1,39 @@ + $gender->getId(), + 'label' => $this->translatableStringHelper->localize($gender->getLabel()), + 'genderTranslation' => $gender->getGenderTranslation(), + ]; + } +} diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php index 582127704..784e0ab02 100644 --- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php @@ -95,7 +95,8 @@ class PersonDocGenNormalizer implements 'age' => (int) $person->getAge(), 'birthdate' => $this->normalizer->normalize($person->getBirthdate(), $format, $dateContext), 'deathdate' => $this->normalizer->normalize($person->getDeathdate(), $format, $dateContext), - 'gender' => $this->normalizer->normalize($person->getGender(), $format, $genderContext), + 'gender' => $this->translatableStringHelper->localize($person->getGender()->getLabel()), + 'genderEntity' => $this->normalizer->normalize($person->getGender(), $format, $genderContext), 'maritalStatus' => null !== ($ms = $person->getMaritalStatus()) ? $this->translatableStringHelper->localize($ms->getName()) : '', 'maritalStatusDate' => $this->normalizer->normalize($person->getMaritalStatusDate(), $format, $dateContext), 'maritalStatusComment' => $this->normalizer->normalize($person->getMaritalStatusComment(), $format, $dateContext),