From 95adc29f9d2a8f7042c1c2b91941005e23f078e7 Mon Sep 17 00:00:00 2001 From: Julie Lenaerts Date: Mon, 24 Feb 2025 12:34:32 +0100 Subject: [PATCH] WIP create new picker for accompanying period works --- .../Resources/views/Form/fields.html.twig | 21 +++++++++++++++++++ .../Form/FindAccompanyingPeriodWorkType.php | 6 ++++-- ... PickLinkedAccompanyingPeriodWorkType.php} | 15 +++++-------- 3 files changed, 30 insertions(+), 12 deletions(-) rename src/Bundle/ChillPersonBundle/Form/Type/{PickAccompanyingPeriodWorkDynamicType.php => PickLinkedAccompanyingPeriodWorkType.php} (71%) diff --git a/src/Bundle/ChillMainBundle/Resources/views/Form/fields.html.twig b/src/Bundle/ChillMainBundle/Resources/views/Form/fields.html.twig index 15794b9f7..9f07b3aa0 100644 --- a/src/Bundle/ChillMainBundle/Resources/views/Form/fields.html.twig +++ b/src/Bundle/ChillMainBundle/Resources/views/Form/fields.html.twig @@ -266,6 +266,27 @@ data-label="{{ form.vars['label']|trans|escape('html_attr') }}"> {% endblock %} +{% block pick_linked_entities_row %} +
+
+ {{ form_label(form) }} + {{ form_help(form) }} +
+
+
+
+ {{ form_widget(form) }} +
+
+{% endblock %} + +{% block pick_linked_entities_widget %} + +
+{% endblock %} + {% block pick_postal_code_widget %} {{ form_help(form)}} diff --git a/src/Bundle/ChillPersonBundle/Form/FindAccompanyingPeriodWorkType.php b/src/Bundle/ChillPersonBundle/Form/FindAccompanyingPeriodWorkType.php index d38a0fbd9..c5ffa5406 100644 --- a/src/Bundle/ChillPersonBundle/Form/FindAccompanyingPeriodWorkType.php +++ b/src/Bundle/ChillPersonBundle/Form/FindAccompanyingPeriodWorkType.php @@ -13,6 +13,7 @@ namespace Chill\PersonBundle\Form; use Chill\PersonBundle\Entity\AccompanyingPeriod; use Chill\PersonBundle\Form\Type\PickAccompanyingPeriodWorkDynamicType; +use Chill\PersonBundle\Form\Type\PickLinkedAccompanyingPeriodWorkType; use Chill\PersonBundle\Repository\AccompanyingPeriod\AccompanyingPeriodWorkRepository; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\HiddenType; @@ -30,9 +31,10 @@ class FindAccompanyingPeriodWorkType extends AbstractType $suggestedAcpw = $this->repository->findByAccompanyingPeriod($accompanyingPeriod); $builder - ->add('acpw', PickAccompanyingPeriodWorkDynamicType::class, [ + ->add('acpw', PickLinkedAccompanyingPeriodWorkType::class, [ 'label' => 'Accompanying period work', - 'suggested' => $suggestedAcpw + 'suggested' => $suggestedAcpw, + 'multiple' => false, ]) ->add('direction', HiddenType::class, [ 'data' => 'starting', diff --git a/src/Bundle/ChillPersonBundle/Form/Type/PickAccompanyingPeriodWorkDynamicType.php b/src/Bundle/ChillPersonBundle/Form/Type/PickLinkedAccompanyingPeriodWorkType.php similarity index 71% rename from src/Bundle/ChillPersonBundle/Form/Type/PickAccompanyingPeriodWorkDynamicType.php rename to src/Bundle/ChillPersonBundle/Form/Type/PickLinkedAccompanyingPeriodWorkType.php index d08a1c061..5b0e9a7dc 100644 --- a/src/Bundle/ChillPersonBundle/Form/Type/PickAccompanyingPeriodWorkDynamicType.php +++ b/src/Bundle/ChillPersonBundle/Form/Type/PickLinkedAccompanyingPeriodWorkType.php @@ -12,14 +12,9 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; use Symfony\Component\Serializer\Normalizer\NormalizerInterface; use Symfony\Component\Serializer\SerializerInterface; -class PickAccompanyingPeriodWorkDynamicType extends AbstractType +class PickLinkedAccompanyingPeriodWorkType extends AbstractType { - public function __construct(private readonly DenormalizerInterface $denormalizer, private readonly SerializerInterface $serializer, private readonly NormalizerInterface $normalizer) {} - - public function buildForm(FormBuilderInterface $builder, array $options) - { - $builder->addViewTransformer(new EntityToJsonTransformer($this->denormalizer, $this->serializer, $options['multiple'], 'person')); - } + public function __construct(private readonly NormalizerInterface $normalizer) {} public function buildView(FormView $view, FormInterface $form, array $options) { @@ -30,8 +25,8 @@ class PickAccompanyingPeriodWorkDynamicType extends AbstractType $view->vars['as_id'] = true === $options['as_id'] ? '1' : '0'; $view->vars['submit_on_adding_new_entity'] = false; - foreach ($options['suggested'] as $person) { - $view->vars['suggested'][] = $this->normalizer->normalize($person, 'json', ['groups' => 'read']); + foreach ($options['suggested'] as $suggestion) { + $view->vars['suggested'][] = $this->normalizer->normalize($suggestion, 'json', ['groups' => 'read']); } } @@ -50,7 +45,7 @@ class PickAccompanyingPeriodWorkDynamicType extends AbstractType public function getBlockPrefix() { - return 'pick_entity_dynamic'; + return 'pick_linked_entities'; } }