From 99f8aeb6cd011c3c0a115e7a999ab39e93a4c249 Mon Sep 17 00:00:00 2001 From: nobohan Date: Fri, 11 Mar 2022 10:01:20 +0100 Subject: [PATCH 1/7] AccompanyingPeriodWorkEvaluation: fix circular reference when serialising --- .../AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php index 07c9f526c..de8b2a234 100644 --- a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php +++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php @@ -39,7 +39,6 @@ class AccompanyingPeriodWorkEvaluation implements TrackCreationInterface, TrackU * targetEntity=AccompanyingPeriodWork::class, * inversedBy="accompanyingPeriodWorkEvaluations" * ) - * @Serializer\Groups({"read:evaluation:include-work"}) * @Serializer\Context(normalizationContext={"groups": {"read:accompanyingPeriodWork:light"}}, groups={"read:evaluation:include-work"}) */ private ?AccompanyingPeriodWork $accompanyingPeriodWork = null; From ee8f331de497665f250ee6ac1cff3b2e86449038 Mon Sep 17 00:00:00 2001 From: nobohan Date: Fri, 11 Mar 2022 10:18:14 +0100 Subject: [PATCH 2/7] Revert "AccompanyingPeriodWorkEvaluation: fix circular reference when serialising" This reverts commit 99f8aeb6cd011c3c0a115e7a999ab39e93a4c249. --- .../AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php index de8b2a234..07c9f526c 100644 --- a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php +++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php @@ -39,6 +39,7 @@ class AccompanyingPeriodWorkEvaluation implements TrackCreationInterface, TrackU * targetEntity=AccompanyingPeriodWork::class, * inversedBy="accompanyingPeriodWorkEvaluations" * ) + * @Serializer\Groups({"read:evaluation:include-work"}) * @Serializer\Context(normalizationContext={"groups": {"read:accompanyingPeriodWork:light"}}, groups={"read:evaluation:include-work"}) */ private ?AccompanyingPeriodWork $accompanyingPeriodWork = null; From 44e93dd5f8bb9c01cde749294285a81949f268a0 Mon Sep 17 00:00:00 2001 From: nobohan Date: Fri, 11 Mar 2022 10:20:42 +0100 Subject: [PATCH 3/7] AccompanyingPeriodWorkEvaluation: fix circular reference when serialising --- .../AccompanyingPeriodWorkEvaluationNormalizer.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php index fc9b6003a..e8febcf5d 100644 --- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/AccompanyingPeriodWorkEvaluationNormalizer.php @@ -14,6 +14,7 @@ namespace Chill\PersonBundle\Serializer\Normalizer; use Chill\MainBundle\Repository\Workflow\EntityWorkflowRepository; use Chill\MainBundle\Workflow\Helper\MetadataExtractor; use Chill\PersonBundle\Entity\AccompanyingPeriod\AccompanyingPeriodWorkEvaluation; +use Symfony\Component\Serializer\Normalizer\AbstractNormalizer; use Symfony\Component\Serializer\Normalizer\ContextAwareNormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface; use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait; @@ -46,7 +47,10 @@ class AccompanyingPeriodWorkEvaluationNormalizer implements ContextAwareNormaliz { $initial = $this->normalizer->normalize($object, $format, array_merge( $context, - [self::IGNORE_EVALUATION => spl_object_hash($object)] + [self::IGNORE_EVALUATION => spl_object_hash($object)], + [AbstractNormalizer::CIRCULAR_REFERENCE_HANDLER => static function ($object, $format, $context) { + return $object->getId(); + }] )); // due to bug: https://api-platform.com/docs/core/serialization/#collection-relation From f9e8bf4f2d9ff5a5a738a3941a6a0da462f85432 Mon Sep 17 00:00:00 2001 From: nobohan Date: Fri, 11 Mar 2022 10:22:09 +0100 Subject: [PATCH 4/7] upd CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 885068bc0..38f300662 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,8 @@ and this project adheres to ## Unreleased +* [person] AccompanyingPeriodWorkEvaluation: fix circular reference when serialising (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/495) + * [main] filter user job in undispatch acc period to assign (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/472) * [person] Add url in accompanying period work evaluations entity and form (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/476) * [person] Add document generation in admin and in person/{id}/document (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/464) From 90bebbad7de90779ae13e629dd6ba3e6c8339159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 14 Mar 2022 21:27:21 +0100 Subject: [PATCH 5/7] fix normalization for docgen --- src/Bundle/ChillMainBundle/Entity/UserJob.php | 1 + .../Normalizer/PhonenumberNormalizer.php | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Entity/UserJob.php b/src/Bundle/ChillMainBundle/Entity/UserJob.php index 5f0bea45d..99db5d4f1 100644 --- a/src/Bundle/ChillMainBundle/Entity/UserJob.php +++ b/src/Bundle/ChillMainBundle/Entity/UserJob.php @@ -40,6 +40,7 @@ class UserJob * @var array|string[]A * @ORM\Column(name="label", type="json") * @Serializer\Groups({"read", "docgen:read"}) + * @Serializer\Context({"is-translatable": true}, groups={"docgen:read"}) */ protected array $label = []; diff --git a/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php b/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php index 3562c1361..677199ad4 100644 --- a/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php +++ b/src/Bundle/ChillMainBundle/Serializer/Normalizer/PhonenumberNormalizer.php @@ -16,10 +16,11 @@ use libphonenumber\PhoneNumber; use libphonenumber\PhoneNumberUtil; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\Serializer\Exception\UnexpectedValueException; +use Symfony\Component\Serializer\Normalizer\ContextAwareNormalizerInterface; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; -class PhonenumberNormalizer implements NormalizerInterface, DenormalizerInterface +class PhonenumberNormalizer implements ContextAwareNormalizerInterface, DenormalizerInterface { private string $defaultCarrierCode; @@ -53,6 +54,10 @@ class PhonenumberNormalizer implements NormalizerInterface, DenormalizerInterfac public function normalize($object, ?string $format = null, array $context = []): string { + if ($format === 'docgen' && null === $object) { + return ''; + } + return $this->phoneNumberUtil->formatOutOfCountryCallingNumber($object, $this->defaultCarrierCode); } @@ -61,8 +66,18 @@ class PhonenumberNormalizer implements NormalizerInterface, DenormalizerInterfac return 'libphonenumber\PhoneNumber' === $type; } - public function supportsNormalization($data, ?string $format = null) + public function supportsNormalization($data, ?string $format = null, array $context = []): bool { - return $data instanceof PhoneNumber; + if ($data instanceof PhoneNumber && $format === 'json') { + return true; + } + + if ($format === 'docgen' && ( + $data instanceof PhoneNumber || PhoneNumber::class === ($context['docgen:expects'] ?? null) + )) { + return true; + } + + return false; } } From f51279e83e1486bcbb0ba167063d59075428d63f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 14 Mar 2022 21:46:01 +0100 Subject: [PATCH 6/7] fix saving maxDate when denormalizing object --- .../AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php index 07c9f526c..ed3200370 100644 --- a/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php +++ b/src/Bundle/ChillPersonBundle/Entity/AccompanyingPeriod/AccompanyingPeriodWorkEvaluation.php @@ -124,6 +124,7 @@ class AccompanyingPeriodWorkEvaluation implements TrackCreationInterface, TrackU /** * @ORM\Column(type="date_immutable", nullable=true, options={"default": null}) * @Serializer\Groups({"read", "docgen:read"}) + * @Serializer\Groups({"write"}) * @Serializer\Groups({"accompanying_period_work_evaluation:create"}) */ private ?DateTimeImmutable $maxDate = null; From d04f5a527bc56ddeeedebddec2e95eb8f6b12b1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 14 Mar 2022 21:46:21 +0100 Subject: [PATCH 7/7] remove link to action on homepage, in evaluation list --- .../Resources/public/vuejs/HomepageWidget/MyEvaluations.vue | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyEvaluations.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyEvaluations.vue index 7cd40f45a..a872a2f43 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyEvaluations.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/HomepageWidget/MyEvaluations.vue @@ -42,9 +42,6 @@ {{ $t('show_entity', { entity: $t('the_evaluation') }) }} - - {{ $t('show_entity', { entity: $t('the_action') }) }} - {{ $t('show_entity', { entity: $t('the_course') }) }} @@ -102,4 +99,4 @@ export default { \ No newline at end of file +