diff --git a/CHANGELOG.md b/CHANGELOG.md
index c2bf5a5ab..324c343e6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ and this project adheres to
* [person] Order social issues by the field "ordering" (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/388)
* [Person/Household list] when listing other simultaneous members of an household, exclude the members on person, not on members (avoid to show two membersship with the same person)
+* [Person] Display suffixText in RenderPerson, PersonText.vue, RenderPersonBox.vue (was made for displaying "enfant confie") (https://gitlab.com/champs-libres/departement-de-la-vendee/chill/-/issues/441)
## Test releases
diff --git a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php
index 7ee09690a..a787e9ecd 100644
--- a/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php
+++ b/src/Bundle/ChillActivityBundle/Service/DocGenerator/ActivityContext.php
@@ -22,7 +22,7 @@ use Chill\DocStoreBundle\Repository\DocumentCategoryRepository;
use Chill\MainBundle\Templating\TranslatableStringHelperInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
@@ -43,7 +43,7 @@ class ActivityContext implements
private NormalizerInterface $normalizer;
- private PersonRender $personRender;
+ private PersonRenderInterface $personRender;
private TranslatableStringHelperInterface $translatableStringHelper;
@@ -54,7 +54,7 @@ class ActivityContext implements
NormalizerInterface $normalizer,
TranslatableStringHelperInterface $translatableStringHelper,
EntityManagerInterface $em,
- PersonRender $personRender,
+ PersonRenderInterface $personRender,
TranslatorInterface $translator,
BaseContextData $baseContextData
) {
diff --git a/src/Bundle/ChillMainBundle/ChillMainBundle.php b/src/Bundle/ChillMainBundle/ChillMainBundle.php
index 07daf65ea..32e075b7f 100644
--- a/src/Bundle/ChillMainBundle/ChillMainBundle.php
+++ b/src/Bundle/ChillMainBundle/ChillMainBundle.php
@@ -29,7 +29,6 @@ use Chill\MainBundle\Security\ProvideRoleInterface;
use Chill\MainBundle\Security\Resolver\CenterResolverInterface;
use Chill\MainBundle\Security\Resolver\ScopeResolverInterface;
use Chill\MainBundle\Templating\Entity\ChillEntityRenderInterface;
-use Chill\MainBundle\Templating\Entity\CompilerPass as RenderEntityCompilerPass;
use Chill\MainBundle\Templating\UI\NotificationCounterInterface;
use Chill\MainBundle\Workflow\EntityWorkflowHandlerInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
@@ -70,7 +69,6 @@ class ChillMainBundle extends Bundle
$container->addCompilerPass(new MenuCompilerPass());
$container->addCompilerPass(new ACLFlagsCompilerPass());
$container->addCompilerPass(new GroupingCenterCompilerPass());
- $container->addCompilerPass(new RenderEntityCompilerPass());
$container->addCompilerPass(new CRUDControllerCompilerPass());
}
}
diff --git a/src/Bundle/ChillMainBundle/Templating/Entity/ChillEntityRenderExtension.php b/src/Bundle/ChillMainBundle/Templating/Entity/ChillEntityRenderExtension.php
index e1eae3884..2081f3d9a 100644
--- a/src/Bundle/ChillMainBundle/Templating/Entity/ChillEntityRenderExtension.php
+++ b/src/Bundle/ChillMainBundle/Templating/Entity/ChillEntityRenderExtension.php
@@ -25,21 +25,17 @@ class ChillEntityRenderExtension extends AbstractExtension
protected $defaultRender;
/**
- * @var ChillEntityRenderInterface
+ * @var iterable|ChillEntityRenderInterface[]
*/
protected $renders = [];
/**
* ChillEntityRenderExtension constructor.
*/
- public function __construct()
+ public function __construct(iterable $renders)
{
$this->defaultRender = new ChillEntityRender();
- }
-
- public function addRender(ChillEntityRenderInterface $render)
- {
- $this->renders[] = $render;
+ $this->renders = $renders;
}
/**
diff --git a/src/Bundle/ChillMainBundle/Templating/Entity/CompilerPass.php b/src/Bundle/ChillMainBundle/Templating/Entity/CompilerPass.php
deleted file mode 100644
index 38f6284ca..000000000
--- a/src/Bundle/ChillMainBundle/Templating/Entity/CompilerPass.php
+++ /dev/null
@@ -1,31 +0,0 @@
-getDefinition(ChillEntityRenderExtension::class);
-
- foreach ($container->findTaggedServiceIds('chill.render_entity') as $id => $tags) {
- $extension->addMethodCall('addRender', [new Reference($id)]);
- }
- }
-}
diff --git a/src/Bundle/ChillMainBundle/config/services/templating.yaml b/src/Bundle/ChillMainBundle/config/services/templating.yaml
index ade26b946..e69700732 100644
--- a/src/Bundle/ChillMainBundle/config/services/templating.yaml
+++ b/src/Bundle/ChillMainBundle/config/services/templating.yaml
@@ -32,6 +32,8 @@ services:
- { name: twig.extension }
Chill\MainBundle\Templating\Entity\ChillEntityRenderExtension:
+ arguments:
+ $renders: !tagged_iterator chill.render_entity
tags:
- { name: twig.extension }
diff --git a/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php b/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php
index f69081584..31af0a649 100644
--- a/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php
+++ b/src/Bundle/ChillPersonBundle/Form/PersonResourceType.php
@@ -16,7 +16,7 @@ use Chill\MainBundle\Form\Type\CommentType;
use Chill\PersonBundle\Entity\Person\PersonResource;
use Chill\PersonBundle\Entity\Person\PersonResourceKind;
use Chill\PersonBundle\Form\Type\PickPersonDynamicType;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use Chill\PersonBundle\Templating\Entity\ResourceKindRender;
use Chill\ThirdPartyBundle\Form\Type\PickThirdpartyDynamicType;
use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender;
@@ -29,7 +29,7 @@ use Symfony\Contracts\Translation\TranslatorInterface;
final class PersonResourceType extends AbstractType
{
- private PersonRender $personRender;
+ private PersonRenderInterface $personRender;
private ResourceKindRender $resourceKindRender;
@@ -37,7 +37,7 @@ final class PersonResourceType extends AbstractType
private TranslatorInterface $translator;
- public function __construct(ResourceKindRender $resourceKindRender, PersonRender $personRender, ThirdPartyRender $thirdPartyRender, TranslatorInterface $translator)
+ public function __construct(ResourceKindRender $resourceKindRender, PersonRenderInterface $personRender, ThirdPartyRender $thirdPartyRender, TranslatorInterface $translator)
{
$this->resourceKindRender = $resourceKindRender;
$this->personRender = $personRender;
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue
index 85ac8ae7c..f77f006db 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue
+++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonRenderBox.vue
@@ -12,6 +12,7 @@
{{ person.firstName }}
{{ person.lastName }}
+ {{ person.suffixText }}
{{ altNameLabel }}
@@ -20,6 +21,7 @@
{{ person.firstName }}
{{ person.lastName }}
+ {{ person.suffixText }}
(‡)
{{ altNameLabel }}
diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonText.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonText.vue
index 8f89649d8..8b991e3da 100644
--- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonText.vue
+++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/_components/Entity/PersonText.vue
@@ -6,6 +6,7 @@
({{ altNameLabel }})
+ {{ person.suffixText }}
{{ $tc('renderbox.years_old', person.age) }}
(‡)
diff --git a/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig b/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig
index 02fc00e4c..e3280d755 100644
--- a/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig
+++ b/src/Bundle/ChillPersonBundle/Resources/views/Entity/person.html.twig
@@ -12,6 +12,7 @@
* hLevel integer
* addDeath bool
* addAgeBadge bool
+ * suffixText bool
* address_multiline bool
* customButtons [
'before' Twig\Markup, (injected with macro)
@@ -46,6 +47,11 @@
({{- 'years_old'|trans({ 'age': person.age }) -}})
{% endif %}
{% endif %}
+ {%- if options['suffixText'] is defined -%}
+ {% for o in options['suffixText'] %}
+ {{ o }}
+ {% endfor %}
+ {% endif %}
{% endmacro raw %}
{% macro label(person, options) %}
diff --git a/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php b/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php
index 98dc14110..c046c8947 100644
--- a/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php
+++ b/src/Bundle/ChillPersonBundle/Search/SimilarPersonMatcher.php
@@ -15,7 +15,7 @@ use Chill\MainBundle\Security\Authorization\AuthorizationHelper;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Repository\PersonNotDuplicateRepository;
use Chill\PersonBundle\Security\Authorization\PersonVoter;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
@@ -39,7 +39,7 @@ class SimilarPersonMatcher
protected PersonNotDuplicateRepository $personNotDuplicateRepository;
- protected PersonRender $personRender;
+ protected PersonRenderInterface $personRender;
/**
* @var TokenStorageInterface
@@ -51,7 +51,7 @@ class SimilarPersonMatcher
AuthorizationHelper $authorizationHelper,
TokenStorageInterface $tokenStorage,
PersonNotDuplicateRepository $personNotDuplicateRepository,
- PersonRender $personRender
+ PersonRenderInterface $personRender
) {
$this->em = $em;
$this->authorizationHelper = $authorizationHelper;
diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php
index 4dd32aa54..c19b35b57 100644
--- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php
+++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonDocGenNormalizer.php
@@ -19,7 +19,7 @@ use Chill\PersonBundle\Entity\Household\Household;
use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Entity\PersonAltName;
use Chill\PersonBundle\Repository\Relationships\RelationshipRepository;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use DateTimeInterface;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Serializer\Exception\UnexpectedValueException;
@@ -37,7 +37,7 @@ class PersonDocGenNormalizer implements
{
use NormalizerAwareTrait;
- private PersonRender $personRender;
+ private PersonRenderInterface $personRender;
private RelationshipRepository $relationshipRepository;
@@ -46,7 +46,7 @@ class PersonDocGenNormalizer implements
private TranslatorInterface $translator;
public function __construct(
- PersonRender $personRender,
+ PersonRenderInterface $personRender,
RelationshipRepository $relationshipRepository,
TranslatorInterface $translator,
TranslatableStringHelper $translatableStringHelper
diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php
index e91748de8..e51c730fd 100644
--- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php
+++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizer.php
@@ -23,26 +23,18 @@ use Doctrine\Common\Collections\Collection;
use Symfony\Component\Serializer\Exception\UnexpectedValueException;
use Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface;
use Symfony\Component\Serializer\Normalizer\DenormalizerAwareTrait;
-use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface;
use Symfony\Component\Serializer\Normalizer\NormalizerAwareTrait;
-use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
use Symfony\Component\Serializer\Normalizer\ObjectToPopulateTrait;
use function array_key_exists;
/**
* Serialize a Person entity.
*/
-class PersonJsonNormalizer implements
- DenormalizerAwareInterface,
- DenormalizerInterface,
- NormalizerAwareInterface,
- NormalizerInterface
+class PersonJsonNormalizer implements DenormalizerAwareInterface, NormalizerAwareInterface, PersonJsonNormalizerInterface
{
use DenormalizerAwareTrait;
-
use NormalizerAwareTrait;
-
use ObjectToPopulateTrait;
private CenterResolverManagerInterface $centerResolverManager;
diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizerInterface.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizerInterface.php
new file mode 100644
index 000000000..fd41752a8
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/PersonJsonNormalizerInterface.php
@@ -0,0 +1,24 @@
+ $options['customArea'] ?? [],
'addDeath' => $options['addDeath'] ?? true,
'addAgeBadge' => $options['addAgeBadge'] ?? false,
+ 'suffixText' => $options['suffixText'] ?? [],
];
return
diff --git a/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php b/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php
new file mode 100644
index 000000000..631402851
--- /dev/null
+++ b/src/Bundle/ChillPersonBundle/Templating/Entity/PersonRenderInterface.php
@@ -0,0 +1,21 @@
+render = $render;
}
diff --git a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php
index 73c29b1b3..f9f88debe 100644
--- a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php
+++ b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ParticipationOverlapValidator.php
@@ -13,7 +13,7 @@ namespace Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod;
use Chill\MainBundle\Util\DateRangeCovering;
use Chill\PersonBundle\Entity\AccompanyingPeriodParticipation;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender;
use Doctrine\Common\Collections\Collection;
use Symfony\Component\Validator\Constraint;
@@ -26,11 +26,11 @@ class ParticipationOverlapValidator extends ConstraintValidator
{
private const MAX_PARTICIPATION = 1;
- private PersonRender $personRender;
+ private PersonRenderInterface $personRender;
private ThirdPartyRender $thirdpartyRender;
- public function __construct(PersonRender $personRender, ThirdPartyRender $thirdPartyRender)
+ public function __construct(PersonRenderInterface $personRender, ThirdPartyRender $thirdPartyRender)
{
$this->personRender = $personRender;
$this->thirdpartyRender = $thirdPartyRender;
diff --git a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ResourceDuplicateCheckValidator.php b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ResourceDuplicateCheckValidator.php
index 3b84137fb..daf4d67f7 100644
--- a/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ResourceDuplicateCheckValidator.php
+++ b/src/Bundle/ChillPersonBundle/Validator/Constraints/AccompanyingPeriod/ResourceDuplicateCheckValidator.php
@@ -12,7 +12,7 @@ declare(strict_types=1);
namespace Chill\PersonBundle\Validator\Constraints\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Person;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use Chill\ThirdPartyBundle\Templating\Entity\ThirdPartyRender;
use Doctrine\Common\Collections\Collection;
use Symfony\Component\Form\Exception\UnexpectedTypeException;
@@ -24,11 +24,11 @@ use function in_array;
class ResourceDuplicateCheckValidator extends ConstraintValidator
{
- private PersonRender $personRender;
+ private PersonRenderInterface $personRender;
private ThirdPartyRender $thirdpartyRender;
- public function __construct(PersonRender $personRender, ThirdPartyRender $thirdPartyRender)
+ public function __construct(PersonRenderInterface $personRender, ThirdPartyRender $thirdPartyRender)
{
$this->personRender = $personRender;
$this->thirdpartyRender = $thirdPartyRender;
diff --git a/src/Bundle/ChillPersonBundle/Validator/Constraints/Household/HouseholdMembershipSequentialValidator.php b/src/Bundle/ChillPersonBundle/Validator/Constraints/Household/HouseholdMembershipSequentialValidator.php
index c357cb138..eba6fd87e 100644
--- a/src/Bundle/ChillPersonBundle/Validator/Constraints/Household/HouseholdMembershipSequentialValidator.php
+++ b/src/Bundle/ChillPersonBundle/Validator/Constraints/Household/HouseholdMembershipSequentialValidator.php
@@ -13,7 +13,7 @@ namespace Chill\PersonBundle\Validator\Constraints\Household;
use Chill\MainBundle\Util\DateRangeCovering;
use Chill\PersonBundle\Entity\Person;
-use Chill\PersonBundle\Templating\Entity\PersonRender;
+use Chill\PersonBundle\Templating\Entity\PersonRenderInterface;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
use Symfony\Component\Validator\Exception\UnexpectedTypeException;
@@ -26,9 +26,9 @@ use function count;
*/
class HouseholdMembershipSequentialValidator extends ConstraintValidator
{
- private PersonRender $render;
+ private PersonRenderInterface $render;
- public function __construct(PersonRender $render)
+ public function __construct(PersonRenderInterface $render)
{
$this->render = $render;
}