src/Form/PreInscripcionExpoType.php line 21

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\PreInscripcionExpo;
  4. use Symfony\Component\Form\AbstractType;
  5. use Symfony\Component\Form\Extension\Core\Type\FileType;
  6. use Symfony\Component\Form\FormBuilderInterface;
  7. use Symfony\Component\OptionsResolver\OptionsResolver;
  8. use Symfony\Component\Form\Extension\Core\Type\EmailType;
  9. use Symfony\Component\Form\Extension\Core\Type\TextType;
  10. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  11. use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  12. use Symfony\Component\Form\Extension\Core\Type\IntegerType;
  13. use Symfony\Component\Form\Extension\Core\Type\CheckboxType;
  14. use App\Entity\Colegio;
  15. use App\Entity\Region;
  16. use Symfony\Component\Validator\Constraints\File;
  17. class PreInscripcionExpoType extends AbstractType
  18. {
  19.     public function buildForm(FormBuilderInterface $builder, array $options): void
  20.     {
  21.         $builder
  22.         ->add('nombreSolicitante'TextType::class,[
  23.             'required' => true,
  24.         ])
  25.         ->add('apellidoSolicitante'TextType::class,[
  26.             'required' => true,
  27.         ])
  28.         ->add('rutSolicitante'TextType::class,[
  29.             'required' => true,
  30.         ])
  31.         ->add('correoSolicitante'EmailType::class,[
  32.             'required' => true,
  33.         ])
  34.         ->add('telefonoSolicitante'TextType::class,[
  35.             'required' => true,
  36.         ])
  37.         ->add('cargoSolicitante'ChoiceType::class,[
  38.             'choices' => [
  39.                 'Profesor/a' => 'Profesor/a',
  40.                 'Orientador/a' => 'Orientador/a',
  41.                 'Director/a' => 'Director/a',
  42.                 'Psicólogo/a' => 'Psicólogo/a',
  43.                 'Encargado/a de convivencia escolar' => 'Encargado/a de convivencia escolar',
  44.                 'Otro' => 'Otro',
  45.             ],
  46.             'placeholder' => 'Seleccione el cargo',
  47.             'multiple' => false,
  48.             'required' => true,
  49.         ])
  50.         ->add('colegio'EntityType::class, [
  51.             'class' => Colegio::class,
  52.             'choice_label' => 'nombre',
  53.             'multiple' => false,
  54.             'required' => false,
  55.             'attr' => [
  56.                 'onchange' => 'mostrarDiv()',
  57.             ]
  58.         ])
  59.         ->add('otroColegio'TextType::class,[
  60.             'required' => false,
  61.             'attr' => [
  62.                 'style' => 'display:none'
  63.             ]
  64.         ])
  65.         ->add('region'EntityType::class, [
  66.             'class' => Region::class,
  67.             'choice_label' => 'nombre',
  68.             'multiple' => false,
  69.             'required' => false,
  70.         ])
  71.         ->add('comuna'TextType::class,[
  72.             'required' => false,
  73.         ])
  74.         ->add('bloque'ChoiceType::class,[
  75.             'choices' => [
  76.                 'Martes 7 de octubre, bloque AM' => 'Martes 7 de octubre, bloque AM',
  77.                 'Martes 7 de octubre, bloque PM' => 'Martes 7 de octubre, bloque PM',
  78.                 'Miércoles 8 de octubre, bloque AM' => 'Miércoles 8 de octubre, bloque AM',
  79.                 'Miércoles 8 de octubre, bloque PM' => 'Miércoles 8 de octubre, bloque PM',
  80.                 'Jueves 9 de octubre, bloque AM' => 'Jueves 9 de octubre, bloque AM',
  81.                 'Jueves 9  de octubre, bloque PM' => 'Jueves 9  de octubre, bloque PM',
  82.             ],
  83.             'placeholder' => ' Seleccione el horario',
  84.             'multiple' => false,
  85.             'required' => true,
  86.         ])
  87.         ->add('metodoTransporte'ChoiceType::class,[
  88.             'choices' => [
  89.                 'Bus particular' => 'Bus particular',
  90.                 'Transporte público (Bus y/o metro)' => 'Transporte público (Bus y/o metro)',
  91.                 'Aún no cuento con esta información' => 'Aún no cuento con esta información',
  92.             ],
  93.             'placeholder' => ' ',
  94.             'multiple' => false,
  95.             'required' => true,
  96.         ])
  97.         ->add('cursos'ChoiceType::class,[
  98.             'choices' => [
  99.                 '7° Básico' => '7° Básico',
  100.                 '8° Básico' => '8° Básico',
  101.                 'I° Medio' => 'I° Medio',
  102.                 'II° Medio' => 'II° Medio',
  103.                 'III° Medio' => 'III° Medio',
  104.                 'IV° Medio' => 'IV° Medio',
  105.             ],
  106.             'placeholder' => ' ',
  107.             'multiple' => true,
  108.             'required' => true,
  109.             'expanded' => true,
  110.         ])
  111.             ->add('archivoAdjunto'FileType::class, [
  112.                 'mapped' => false,
  113.                 'required'=>false,
  114.                 'attr' => [
  115.         // Limita el selector del navegador a .xlsx
  116.         'accept' => '.xlsx,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
  117.     ],
  118.                 'constraints' => [
  119.                     new File([
  120.                         'mimeTypes' => [
  121.                             'application/vnd.ms-excel',
  122.                             'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
  123.                         ],
  124.                         'mimeTypesMessage' => 'Por favor, sube un archivo Excel válido (.xls, .xlsx)',
  125.                     ])
  126.                 ],
  127.             ])
  128.         ->add('cantidadAsistentes'IntegerType::class, [
  129.         ])
  130.         ->add('condiciones'CheckboxType::class, [
  131.             'label' => 'Your Label Text',
  132.             'required' => true,
  133.         ])
  134.         ->add('condiciones2'CheckboxType::class, [
  135.         'label' => 'Your Label Text',
  136.         'required' => true,
  137.         'mapped'=>false,
  138.     ]);
  139.         ;
  140.     }
  141.     public function configureOptions(OptionsResolver $resolver): void
  142.     {
  143.         $resolver->setDefaults([
  144.             'csrf_protection' => false,
  145.         ]);
  146.     }
  147. }