add('activityReference') ->add('date', null, [ 'html5' => true, 'widget' => 'single_text', ]) ->add('groups') ->add('levels') ->add('themeType') ->add('themes', null, [ 'attr' => ['rows' => 5], ]) ->add('content', null, [ 'attr' => ['rows' => 7], ]) ->add('tools', null, [ 'expanded' => true, ]) ->add('toolsDetails', null, [ 'attr' => ['rows' => 5], ]) ->add('comment', null, [ 'attr' => ['rows' => 7], ]) ->add('feedback', null, [ 'attr' => ['rows' => 5], ]) ->add('vigilantPoints', null, [ 'attr' => ['rows' => 5], ]) ->add('speakers', null, [ 'expanded' => true, ]) ->add('establishmentGroups', null, [ 'multiple' => true, 'attr' => [ 'size' => 15, 'data-jschoice' => '', ], 'group_by' => function($choice, $key, $value) { return $choice->getEstablishment()->getName(); }, 'query_builder' => function (EntityRepository $er) { return $er->createQueryBuilder('g') ->leftJoin('g.establishment', 'e') ->addOrderBy('e.name', 'ASC') ->addOrderBy('g.label', 'ASC'); }, ]) ; } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Intervention::class, ]); } }