<?php
namespace App\Form\Candidate;
use App\Entity\BranchActivity;
use App\Entity\Capacity;
use App\Entity\CityType;
use App\Entity\ContactReason;
use App\Entity\HealthExerciseMode;
use App\Entity\HealthSpeciality;
use App\Entity\LivingEnvironment;
use App\Entity\ProfessionalProfile;
use App\Entity\ProfessionalType;
use App\Entity\ProjectSituationStatus;
use App\Entity\Region;
use App\Entity\TypeResearch;
use App\Form\Front\KidType;
use App\Form\Front\ProjectLeaderType;
use App\Form\UploadDocumentType;
use Symfony\Component\Form\AbstractType;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
use Symfony\Component\Form\Extension\Core\Type\TextareaType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
use Symfony\Component\Form\Extension\Core\Type\UrlType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
class ProfessionalProfileRegistrationType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('professionalType', EntityType::class, ['class' => ProfessionalType::class, 'multiple' => false,
'required'=> true, 'expanded' => false, 'label' => 'myprofile', 'choice_label' => 'label',
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->where('a.active = :active')
->setParameter('active', true)
;
}
])
->add('otherProfessionalType', TextType::class, ['label' => 'form.tospecify'])
->add('branches',
EntityType::class,
[
'class' => BranchActivity::class,
'multiple' => true,
'expanded' => true,
'label' => 'branch.titlemy',
'choice_label' => 'label',
'required'=> false,
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->addOrderBy('a.position', 'ASC')
->addOrderBy('a.label', 'ASC')
;
}
]
)
->add('otherBranche', TextType::class, ['label' => 'form.tospecify'])
->add('searchCapacities',
EntityType::class,
[
'class' => Capacity::class,
'multiple' => true,
'expanded' => true,
'label' => 'professionalprofile.searchcapacities',
'choice_label' => 'label',
'required'=> false,
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->addOrderBy('a.position', 'ASC')
->addOrderBy('a.label', 'ASC')
;
}
]
)
->add('otherSearchCapacity', TextType::class, ['label' => 'form.tospecify', 'attr' => ['class' => 'specify']])
->add('healthSpeciality', EntityType::class, ['class' => HealthSpeciality::class, 'multiple' => false,
'required'=> false, 'expanded' => false, 'label' => 'health.titlemyspeciality', 'choice_label' => 'label',
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->addOrderBy('a.position', 'ASC')
->addOrderBy('a.label', 'ASC')
;
}
])
->add('otherHealthSpeciality', TextType::class, ['label' => 'form.tospecify', 'attr' => ['class' => 'specify']])
->add('healthExerciceModes',
EntityType::class,
[
'class' => HealthExerciseMode::class,
'multiple' => true,
'expanded' => true,
'label' => 'health.exercicemode.form',
'choice_label' => 'label',
'required'=> false,
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->orderBy('a.label', 'ASC')
;
}
]
)
->add('typeResearch',
EntityType::class,
[
'class' => TypeResearch::class,
'multiple' => false,
'expanded' => false,
'label' => 'professionalprofile.typeresearch.my',
'choice_label' => 'label',
'required'=> false,
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->addOrderBy('a.position', 'ASC')
->addOrderBy('a.label', 'ASC')
;
}
]
)
->add('otherTypeResearch', TextType::class, ['label' => 'form.tospecify'])
->add('projectLeader', ProjectLeaderType::class, ['label' => ' ' ])
->add('linkedin', UrlType::class, ['required' => false, 'label' => 'Profil Linkedin'])
->add('curriculumVitae', UploadDocumentType::class, ['label' => 'professionalprofile.cv'])
->add('regions',
EntityType::class,
[
'class' => Region::class,
'multiple' => true,
'expanded' => true,
'label' => 'professionalprofile.regions.my',
'choice_label' => 'name',
'required'=> false,
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->where('a.searchable = true')
->orderBy('a.name', 'ASC')
;
}
]
)
->add('statuses',
EntityType::class,
[
'class' => ProjectSituationStatus::class,
'multiple' => true,
'expanded' => true,
'label' => 'professionalprofile.statuses.form',
'choice_label' => 'label',
'required'=> false,
'query_builder' => function($er) {
return $er->createQueryBuilder('a')
->orderBy('a.label', 'ASC')
->orderBy('a.position', 'ASC')
;
}
]
)
->add('otherProjectSituationStatus', TextType::class, ['label' => 'form.tospecify'])
// ->add('validate', SubmitType::class, ['label' => 'actions.validate'])
;
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => ProfessionalProfile::class,
]);
}
}