diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a3031354..af1105275 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,7 +67,7 @@ and this project adheres to * [social_action] Translation changed in evaluation section (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/512) * [filiation] Possible to add person (or create onthefly) to add to filiation graph + add relation (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/519) * [household] Within parcours listing page of household add create button (https://gitlab.com/champs-libres/departement-de-la-vendee/accent-suivi-developpement/-/issues/560) -* [person_resource] bugfix when adding thirdparty or freetext resource (no issue) +* [person_resource] bugfix when adding thirdparty or freetext resource + prevent personOwner themselves to be added. (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/526) * [aside_activity] style correction + sticky-form create button (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/529) ## Test releases diff --git a/src/Bundle/ChillPersonBundle/Controller/PersonResourceController.php b/src/Bundle/ChillPersonBundle/Controller/PersonResourceController.php index 004961594..6d35f8140 100644 --- a/src/Bundle/ChillPersonBundle/Controller/PersonResourceController.php +++ b/src/Bundle/ChillPersonBundle/Controller/PersonResourceController.php @@ -145,30 +145,16 @@ final class PersonResourceController extends AbstractController public function newAction(Request $request, $person_id) { $personOwner = $this->personRepository->find($person_id); + $personResource = new PersonResource(); + $personResource->setPersonOwner($personOwner); - $form = $this->createForm(PersonResourceType::class); + $form = $this->createForm(PersonResourceType::class, $personResource); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $this->denyAccessUnlessGranted(PersonVoter::CREATE, $personOwner); - $personResource = new PersonResource(); - - $person = $form['person']->getData(); - $thirdparty = $form['thirdparty']->getData(); - $freetext = $form['freetext']->getData(); - $comment = $form['comment']->getData(); - $kind = $form['kind']->getData(); - - $personResource->setKind($kind); - $personResource->setPerson($person); - $personResource->setThirdParty($thirdparty); - $personResource->setFreeText($freetext); - $personResource->setComment($comment); - - $personResource->setPersonOwner($personOwner); - $this->em->persist($personResource); $this->em->flush(); diff --git a/src/Bundle/ChillPersonBundle/Entity/Person/PersonResource.php b/src/Bundle/ChillPersonBundle/Entity/Person/PersonResource.php index b1022cf4c..73bd23106 100644 --- a/src/Bundle/ChillPersonBundle/Entity/Person/PersonResource.php +++ b/src/Bundle/ChillPersonBundle/Entity/Person/PersonResource.php @@ -232,6 +232,7 @@ class PersonResource implements TrackCreationInterface, TrackUpdateInterface } if (null !== $this->person && $this->person === $this->personOwner) { + $context->buildViolation('You cannot associate a resource with the same person') ->addViolation(); } diff --git a/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php b/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php index 31af0a649..aeab09fea 100644 --- a/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php +++ b/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php @@ -29,12 +29,8 @@ use Symfony\Contracts\Translation\TranslatorInterface; final class PersonResourceType extends AbstractType { - private PersonRenderInterface $personRender; - private ResourceKindRender $resourceKindRender; - private ThirdPartyRender $thirdPartyRender; - private TranslatorInterface $translator; public function __construct(ResourceKindRender $resourceKindRender, PersonRenderInterface $personRender, ThirdPartyRender $thirdPartyRender, TranslatorInterface $translator) diff --git a/src/Bundle/ChillPersonBundle/translations/validators.fr.yml b/src/Bundle/ChillPersonBundle/translations/validators.fr.yml index 452365c4c..492f50396 100644 --- a/src/Bundle/ChillPersonBundle/translations/validators.fr.yml +++ b/src/Bundle/ChillPersonBundle/translations/validators.fr.yml @@ -57,3 +57,4 @@ Only the referrer can change the confidentiality of a parcours: 'Seul le référ # resource You must associate at least one entity: Associez un usager, un tiers ou indiquez une description libre +You cannot associate a resource with the same person: Vous ne pouvez pas ajouter la personne elle-même en tant que ressource. \ No newline at end of file