Commit 1521546b1c47646edf4fec488322e3ef31b2ec3b
1 parent
a10b2c5279
Exists in
master
se mejoró la validación de la adscripcion, se guradó la dirección de correo del …
…docente, se envian correos al cambiar el estatus de la adscripcion, se deja libre la parte de administracion mientras se hacen pruebas
Showing
9 changed files
with
223 additions
and
23 deletions
Show diff stats
app/Resources/views/cea/solicitudes_mostar.html.twig
@@ -32,7 +32,7 @@ | @@ -32,7 +32,7 @@ | ||
32 | 32 | ||
33 | </div> | 33 | </div> |
34 | <div class="row"> | 34 | <div class="row"> |
35 | - {% if adscripcion.postgrado is null %} | 35 | + {% if adscripcion.oposicion is null %} |
36 | <div class="form-group"> | 36 | <div class="form-group"> |
37 | <h4 class="alert alert-warning">El Docente al momento de la solicitud informa no haber realizado Concurso de oposición</h4> | 37 | <h4 class="alert alert-warning">El Docente al momento de la solicitud informa no haber realizado Concurso de oposición</h4> |
38 | </div> | 38 | </div> |
@@ -151,6 +151,21 @@ | @@ -151,6 +151,21 @@ | ||
151 | </div> | 151 | </div> |
152 | </div> | 152 | </div> |
153 | {% endif %} | 153 | {% endif %} |
154 | + | ||
155 | + | ||
156 | + | ||
157 | + {% if adscripcion.asistente is not null %} | ||
158 | + <div class="col-xs-4"> | ||
159 | + <div class="thumbnail"> | ||
160 | + <a href="{{asset('uploads/adscripcion/'~ adscripcion.asistente)}}" data-lightbox="adscripcion"> | ||
161 | + <img src="{{ asset('uploads/adscripcion/thumb/'~ adscripcion.asistente) }}" /> | ||
162 | + </a> | ||
163 | + <div class="caption"> | ||
164 | + <p>Ascenso Asistente</p> | ||
165 | + </div> | ||
166 | + </div> | ||
167 | + </div> | ||
168 | + {% endif %} | ||
154 | 169 | ||
155 | 170 | ||
156 | 171 |
app/Resources/views/correos/actualizar_adscripcion.html.twig
@@ -0,0 +1,9 @@ | @@ -0,0 +1,9 @@ | ||
1 | +<h3>Bienvido al CEA@UBV {{ nombres }}Tu adscripcion ha sido {{ estatus }}</h3> | ||
2 | + | ||
3 | + | ||
4 | +Para hacer login dirigete simplemente a la página de ingreso del Portal del Centro de Estudios Avanzados: <a href="{{ url('login') }}">Login</a>. | ||
5 | + | ||
6 | + | ||
7 | + | ||
8 | +{# Makes an absolute URL to the /images/logo.png file #} | ||
9 | +<img src="{{ absolute_url(asset('bundles/framework/images/portal/logo_ubv.png')) }}"> | ||
0 | \ No newline at end of file | 10 | \ No newline at end of file |
app/Resources/views/portal/index.html.twig
@@ -248,7 +248,7 @@ | @@ -248,7 +248,7 @@ | ||
248 | <div class="col-md-6 wow fadeInRight"> | 248 | <div class="col-md-6 wow fadeInRight"> |
249 | <div class="social-links"> | 249 | <div class="social-links"> |
250 | <a class="social" href="#" target="_blank"><i class="fa fa-facebook fa-2x"></i></a> | 250 | <a class="social" href="#" target="_blank"><i class="fa fa-facebook fa-2x"></i></a> |
251 | - <a class="social" href="#" target="_blank"><i class="fa fa-twitter fa-2x"></i></a> | 251 | + <a class="social" href="https://twitter.com/ubv?lang=es" target="_blank"><i class="fa fa-twitter fa-2x"></i></a> |
252 | <a class="social" href="#" target="_blank"><i class="fa fa-google-plus fa-2x"></i></a> | 252 | <a class="social" href="#" target="_blank"><i class="fa fa-google-plus fa-2x"></i></a> |
253 | <a class="social" href="#" target="_blank"><i class="fa fa-linkedin fa-2x"></i></a> | 253 | <a class="social" href="#" target="_blank"><i class="fa fa-linkedin fa-2x"></i></a> |
254 | </div> | 254 | </div> |
app/Resources/views/solicitudes/adscripcion.html.twig
@@ -39,25 +39,47 @@ | @@ -39,25 +39,47 @@ | ||
39 | $("#user_fecha_oposicion_month").prop('required', $(this).prop("checked")); | 39 | $("#user_fecha_oposicion_month").prop('required', $(this).prop("checked")); |
40 | $("#user_fecha_oposicion_year").prop('required', $(this).prop("checked")); | 40 | $("#user_fecha_oposicion_year").prop('required', $(this).prop("checked")); |
41 | $("#user_documento_oposicion").prop('required', $(this).prop("checked")); | 41 | $("#user_documento_oposicion").prop('required', $(this).prop("checked")); |
42 | + $("#user_lineas_investigacion").prop('required', $(this).prop("checked")); | ||
43 | + $("#user_titulo_trabajo").prop('required', $(this).prop("checked")); | ||
42 | }); | 44 | }); |
43 | 45 | ||
44 | $('#user_ascenso').click(function() { | 46 | $('#user_ascenso').click(function() { |
45 | - alert($("#user_escala").val()); | 47 | + |
46 | if($("#user_escala").val() == 1) | 48 | if($("#user_escala").val() == 1) |
47 | $('.esc_asistente')[this.checked ? "show" : "hide"](); | 49 | $('.esc_asistente')[this.checked ? "show" : "hide"](); |
48 | if($("#user_escala").val() == 2) | 50 | if($("#user_escala").val() == 2) |
49 | $('.esc_asociado')[this.checked ? "show" : "hide"](); | 51 | $('.esc_asociado')[this.checked ? "show" : "hide"](); |
50 | - if($("#user_escala").val() == 3) | ||
51 | - $('.esc_agregado')[this.checked ? "show" : "hide"](); | ||
52 | - if($("#user_escala").val() == 4) | ||
53 | - $('.esc_titular')[this.checked ? "show" : "hide"](); | ||
54 | - | 52 | + if($("#user_escala").val() == 3) |
53 | + $('.esc_agregado')[this.checked ? "show" : "hide"](); | ||
54 | + if($("#user_escala").val() == 4) | ||
55 | + $('.esc_titular')[this.checked ? "show" : "hide"](); | ||
55 | 56 | ||
56 | }); | 57 | }); |
57 | 58 | ||
58 | 59 | ||
59 | - $('#user_ascenso2').click(function() { | ||
60 | - alert($("#user_escala").val()); | 60 | + |
61 | + | ||
62 | + | ||
63 | + $("#user_fecha_oposicion_year").change(function(){ | ||
64 | + if ($("#user_fecha_oposicion_year").val() < $("#user_fecha_ingreso_year").val()){ | ||
65 | + alert('la fecha de concurso debe ser mayor a la fecha de ingreso'); | ||
66 | + $("#user_fecha_oposicion_year").val(""); | ||
67 | + | ||
68 | + } | ||
69 | + }); | ||
70 | + | ||
71 | + $("#user_fecha_ascenso_asistente_year").change(function(){ | ||
72 | + if ($("#user_fecha_ascenso_asistente_year").val() < $("#user_fecha_oposicion_year").val()){ | ||
73 | + alert('la fecha de ascenso debe ser mayor a la del Concurso de oposición'); | ||
74 | + $("#user_fecha_asistente_year").val(""); | ||
75 | + | ||
76 | + } | ||
77 | + }); | ||
78 | + | ||
79 | + | ||
80 | + | ||
81 | + | ||
82 | + $('#user_ascenso2').click(function() { | ||
61 | $('.esc_asociado')[this.checked ? "show" : "hide"](); | 83 | $('.esc_asociado')[this.checked ? "show" : "hide"](); |
62 | 84 | ||
63 | }); | 85 | }); |
@@ -74,8 +96,7 @@ | @@ -74,8 +96,7 @@ | ||
74 | }); | 96 | }); |
75 | 97 | ||
76 | 98 | ||
77 | - $('#user_escala').change(function(){ | ||
78 | - alert($('#user_escala').val()) | 99 | + $('#user_escala').change(function(){ |
79 | if ($('#user_escala').val() >= 1) $('#user_oposicion').attr('disabled',true); | 100 | if ($('#user_escala').val() >= 1) $('#user_oposicion').attr('disabled',true); |
80 | else $('#user_oposicion').attr('disabled',false); | 101 | else $('#user_oposicion').attr('disabled',false); |
81 | }); | 102 | }); |
app/config/security.yml
@@ -37,5 +37,5 @@ security: | @@ -37,5 +37,5 @@ security: | ||
37 | - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } | 37 | - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY } |
38 | - { path: ^/register, roles: ROLE_DOCENTE } | 38 | - { path: ^/register, roles: ROLE_DOCENTE } |
39 | - { path: ^/ceapp, roles: ROLE_DOCENTE } | 39 | - { path: ^/ceapp, roles: ROLE_DOCENTE } |
40 | - - { path: ^/admin, roles: ROLE_ADMINISTRADOR } | 40 | + - { path: ^/admin, roles: IS_AUTHENTICATED_ANONYMOUSLY } |
41 | - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY } | 41 | - { path: ^/, roles: IS_AUTHENTICATED_ANONYMOUSLY } |
src/AppBundle/Controller/AppController.php
@@ -140,6 +140,7 @@ class AppController extends Controller { | @@ -140,6 +140,7 @@ class AppController extends Controller { | ||
140 | $adscripciones->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(1)); | 140 | $adscripciones->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(1)); |
141 | $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($adscripcion->getIdRolInstitucion()); | 141 | $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($adscripcion->getIdRolInstitucion()); |
142 | $user->addRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ADSCRITO")); | 142 | $user->addRol($this->getDoctrine()->getRepository('AppBundle:Role')->findOneByName("ROLE_ADSCRITO")); |
143 | + | ||
143 | }else{ | 144 | }else{ |
144 | $adscripciones->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); | 145 | $adscripciones->setIdEstatus($this->getDoctrine()->getRepository('AppBundle:Estatus')->findOneById(3)); |
145 | $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($adscripcion->getIdRolInstitucion()); | 146 | $user = $this->getDoctrine()->getRepository('AppBundle:Usuarios')->findOneByIdRolInstitucion($adscripcion->getIdRolInstitucion()); |
@@ -151,7 +152,24 @@ class AppController extends Controller { | @@ -151,7 +152,24 @@ class AppController extends Controller { | ||
151 | $em->persist($user); | 152 | $em->persist($user); |
152 | $em->flush(); | 153 | $em->flush(); |
153 | 154 | ||
154 | - $this->addFlash('notice', 'Solicitud Actualizada Correctamente'); | 155 | + $message = \Swift_Message::newInstance() |
156 | + ->setSubject('Resultado Adscripcion CEA@UBV') | ||
157 | + ->setFrom('wilmer.ramones@gmail.com') | ||
158 | + ->setTo($user->getEmail()) | ||
159 | + ->setBody( | ||
160 | + $this->renderView( | ||
161 | + 'correos/actualizar_adscripcion.html.twig', | ||
162 | + array( | ||
163 | + 'nombres' => $user->getUsername(), | ||
164 | + 'estatus' => $adscripciones->getIdEstatus() | ||
165 | + ) | ||
166 | + ), | ||
167 | + 'text/html' | ||
168 | + ) | ||
169 | + ; | ||
170 | + $this->get('mailer')->send($message); | ||
171 | + | ||
172 | + $this->addFlash('notice', 'Solicitud Actualizada Correctamente, hemos enviado un correo al docente notificandole los cambios.'); | ||
155 | 173 | ||
156 | $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findBy(array( | 174 | $escala = $this->getDoctrine()->getRepository('AppBundle:DocenteEscala')->findBy(array( |
157 | 'idRolInstitucion' => $adscripciones->getIdRolInstitucion()->getId() | 175 | 'idRolInstitucion' => $adscripciones->getIdRolInstitucion()->getId() |
src/AppBundle/Controller/PortalController.php
@@ -51,6 +51,7 @@ class PortalController extends Controller | @@ -51,6 +51,7 @@ class PortalController extends Controller | ||
51 | if(!$credenciales){ //si no existe, procede a crear usuario y contraseña. | 51 | if(!$credenciales){ //si no existe, procede a crear usuario y contraseña. |
52 | $login = new Usuarios(); | 52 | $login = new Usuarios(); |
53 | $login->setUsername($usuario); | 53 | $login->setUsername($usuario); |
54 | + $login->setEmail($form->get('correo')->getData()); | ||
54 | $login->setPlainPassword($form->get('cedula')->getData()); | 55 | $login->setPlainPassword($form->get('cedula')->getData()); |
55 | $password = $this->get('security.password_encoder') | 56 | $password = $this->get('security.password_encoder') |
56 | ->encodePassword($login, $login->getPlainPassword()); //encripta la contraseña | 57 | ->encodePassword($login, $login->getPlainPassword()); //encripta la contraseña |
src/AppBundle/Entity/Usuarios.php
@@ -30,6 +30,14 @@ class Usuarios implements UserInterface, \Serializable | @@ -30,6 +30,14 @@ class Usuarios implements UserInterface, \Serializable | ||
30 | * @ORM\Column(name="username", type="string", length=255, nullable=false, options={"comment" = "nombre de usuariro"}) | 30 | * @ORM\Column(name="username", type="string", length=255, nullable=false, options={"comment" = "nombre de usuariro"}) |
31 | */ | 31 | */ |
32 | protected $username; | 32 | protected $username; |
33 | + | ||
34 | + /** | ||
35 | + * @ORM\Column(type="string") | ||
36 | + * @Assert\NotBlank() | ||
37 | + * @Assert\Email | ||
38 | + * @var string | ||
39 | + */ | ||
40 | + protected $email; | ||
33 | 41 | ||
34 | /** | 42 | /** |
35 | * @var string | 43 | * @var string |
@@ -112,6 +120,32 @@ class Usuarios implements UserInterface, \Serializable | @@ -112,6 +120,32 @@ class Usuarios implements UserInterface, \Serializable | ||
112 | { | 120 | { |
113 | return $this->username; | 121 | return $this->username; |
114 | } | 122 | } |
123 | + | ||
124 | + | ||
125 | + | ||
126 | + /** | ||
127 | + * Set username | ||
128 | + * | ||
129 | + * @param string $email | ||
130 | + * @return Usuarios | ||
131 | + */ | ||
132 | + public function setEmail($email) | ||
133 | + { | ||
134 | + $this->email = $email; | ||
135 | + | ||
136 | + return $this; | ||
137 | + } | ||
138 | + | ||
139 | + /** | ||
140 | + * Get email | ||
141 | + * | ||
142 | + * @return string | ||
143 | + */ | ||
144 | + public function getEmail() | ||
145 | + { | ||
146 | + return $this->email; | ||
147 | + } | ||
148 | + | ||
115 | 149 | ||
116 | /** | 150 | /** |
117 | * Set password | 151 | * Set password |
src/AppBundle/Form/UserType.php
@@ -30,21 +30,43 @@ class UserType extends AbstractType | @@ -30,21 +30,43 @@ class UserType extends AbstractType | ||
30 | { | 30 | { |
31 | $builder | 31 | $builder |
32 | ->add('fecha_ingreso', BirthdayType::class, array( | 32 | ->add('fecha_ingreso', BirthdayType::class, array( |
33 | + 'widget' => 'choice', | ||
33 | 'label' => 'Fecha de Ingreso UBV', | 34 | 'label' => 'Fecha de Ingreso UBV', |
34 | - 'data' => new \DateTime("01/01/2003") | 35 | + 'data' => new \DateTime("01/01/2003"), |
36 | + 'years' => range(2003, date("Y")) | ||
35 | )) | 37 | )) |
36 | ->add('trabajo', FileType::class, array( | 38 | ->add('trabajo', FileType::class, array( |
37 | 'label' => 'Digital Constancia Trabajo', | 39 | 'label' => 'Digital Constancia Trabajo', |
38 | 'constraints' => array( | 40 | 'constraints' => array( |
39 | new NotBlank(), | 41 | new NotBlank(), |
40 | - new File(array('maxSize' => '1024K')) | 42 | + new File(array( |
43 | + 'maxSize' => '1024K', | ||
44 | + 'mimeTypes' => [ | ||
45 | + 'application/pdf', | ||
46 | + 'application/x-pdf', | ||
47 | + 'image/png', | ||
48 | + 'image/jpg', | ||
49 | + 'image/jpeg' | ||
50 | + ], | ||
51 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
52 | + )) | ||
41 | ) | 53 | ) |
42 | )) | 54 | )) |
43 | ->add('pregrado', FileType::class, array( | 55 | ->add('pregrado', FileType::class, array( |
44 | 'label' => 'Digital Título de Pregrado', | 56 | 'label' => 'Digital Título de Pregrado', |
45 | 'constraints' => array( | 57 | 'constraints' => array( |
46 | new NotBlank(), | 58 | new NotBlank(), |
47 | - new File(array('maxSize' => '1024K')) | 59 | + new File(array( |
60 | + 'maxSize' => '1024K', | ||
61 | + 'mimeTypes' => [ | ||
62 | + 'application/pdf', | ||
63 | + 'application/x-pdf', | ||
64 | + 'image/png', | ||
65 | + 'image/jpg', | ||
66 | + 'image/jpeg' | ||
67 | + ], | ||
68 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
69 | + )) | ||
48 | ) | 70 | ) |
49 | )) | 71 | )) |
50 | 72 | ||
@@ -52,7 +74,17 @@ class UserType extends AbstractType | @@ -52,7 +74,17 @@ class UserType extends AbstractType | ||
52 | 'label' => 'Digital Título de Postgrado', | 74 | 'label' => 'Digital Título de Postgrado', |
53 | 'required' => false, | 75 | 'required' => false, |
54 | 'constraints' => array( | 76 | 'constraints' => array( |
55 | - new File(array('maxSize' => '1024K')) | 77 | + new File(array( |
78 | + 'maxSize' => '1024K', | ||
79 | + 'mimeTypes' => [ | ||
80 | + 'application/pdf', | ||
81 | + 'application/x-pdf', | ||
82 | + 'image/png', | ||
83 | + 'image/jpg', | ||
84 | + 'image/jpeg' | ||
85 | + ], | ||
86 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
87 | + )) | ||
56 | ) | 88 | ) |
57 | )) | 89 | )) |
58 | ->add('oposicion', CheckboxType::class, array( | 90 | ->add('oposicion', CheckboxType::class, array( |
@@ -75,7 +107,8 @@ class UserType extends AbstractType | @@ -75,7 +107,8 @@ class UserType extends AbstractType | ||
75 | 'required' => false, | 107 | 'required' => false, |
76 | 'attr' => array( | 108 | 'attr' => array( |
77 | 'class' => 'esc_oposicion' | 109 | 'class' => 'esc_oposicion' |
78 | - ) | 110 | + ), |
111 | + 'years' => range(2003, date("Y")) | ||
79 | )) | 112 | )) |
80 | ->add('documento_oposicion', FileType::class, array( | 113 | ->add('documento_oposicion', FileType::class, array( |
81 | 'label' => 'Digital Documento Oposición', | 114 | 'label' => 'Digital Documento Oposición', |
@@ -84,6 +117,19 @@ class UserType extends AbstractType | @@ -84,6 +117,19 @@ class UserType extends AbstractType | ||
84 | 'attr' => array( | 117 | 'attr' => array( |
85 | 'style' => 'display:none;', | 118 | 'style' => 'display:none;', |
86 | 'class' => 'esc_oposicion' | 119 | 'class' => 'esc_oposicion' |
120 | + ), | ||
121 | + 'constraints' => array( | ||
122 | + new File(array( | ||
123 | + 'maxSize' => '1024K', | ||
124 | + 'mimeTypes' => [ | ||
125 | + 'application/pdf', | ||
126 | + 'application/x-pdf', | ||
127 | + 'image/png', | ||
128 | + 'image/jpg', | ||
129 | + 'image/jpeg' | ||
130 | + ], | ||
131 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
132 | + )) | ||
87 | ) | 133 | ) |
88 | )) | 134 | )) |
89 | 135 | ||
@@ -125,7 +171,8 @@ class UserType extends AbstractType | @@ -125,7 +171,8 @@ class UserType extends AbstractType | ||
125 | 'label_attr' => array( 'class' => 'esc_asistente'), | 171 | 'label_attr' => array( 'class' => 'esc_asistente'), |
126 | 'attr' => array( | 172 | 'attr' => array( |
127 | 'class' => 'esc_asistente' | 173 | 'class' => 'esc_asistente' |
128 | - ) | 174 | + ), |
175 | + 'years' => range(2003, date("Y")) | ||
129 | )) | 176 | )) |
130 | 177 | ||
131 | ->add('documento_asistente', FileType::class, array( | 178 | ->add('documento_asistente', FileType::class, array( |
@@ -135,6 +182,19 @@ class UserType extends AbstractType | @@ -135,6 +182,19 @@ class UserType extends AbstractType | ||
135 | 'attr' => array( | 182 | 'attr' => array( |
136 | 'style' => 'display:none;', | 183 | 'style' => 'display:none;', |
137 | 'class' => 'esc_asistente' | 184 | 'class' => 'esc_asistente' |
185 | + ), | ||
186 | + 'constraints' => array( | ||
187 | + new File(array( | ||
188 | + 'maxSize' => '1024K', | ||
189 | + 'mimeTypes' => [ | ||
190 | + 'application/pdf', | ||
191 | + 'application/x-pdf', | ||
192 | + 'image/png', | ||
193 | + 'image/jpg', | ||
194 | + 'image/jpeg' | ||
195 | + ], | ||
196 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
197 | + )) | ||
138 | ) | 198 | ) |
139 | )) | 199 | )) |
140 | 200 | ||
@@ -156,7 +216,8 @@ class UserType extends AbstractType | @@ -156,7 +216,8 @@ class UserType extends AbstractType | ||
156 | 'required' => false, | 216 | 'required' => false, |
157 | 'attr' => array( | 217 | 'attr' => array( |
158 | 'class' => 'esc_asociado' | 218 | 'class' => 'esc_asociado' |
159 | - ) | 219 | + ), |
220 | + 'years' => range(2003, date("Y")) | ||
160 | )) | 221 | )) |
161 | 222 | ||
162 | ->add('documento_asociado', FileType::class, array( | 223 | ->add('documento_asociado', FileType::class, array( |
@@ -166,6 +227,19 @@ class UserType extends AbstractType | @@ -166,6 +227,19 @@ class UserType extends AbstractType | ||
166 | 'attr' => array( | 227 | 'attr' => array( |
167 | 'style' => 'display:none;', | 228 | 'style' => 'display:none;', |
168 | 'class' => 'esc_asociado' | 229 | 'class' => 'esc_asociado' |
230 | + ), | ||
231 | + 'constraints' => array( | ||
232 | + new File(array( | ||
233 | + 'maxSize' => '1024K', | ||
234 | + 'mimeTypes' => [ | ||
235 | + 'application/pdf', | ||
236 | + 'application/x-pdf', | ||
237 | + 'image/png', | ||
238 | + 'image/jpg', | ||
239 | + 'image/jpeg' | ||
240 | + ], | ||
241 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
242 | + )) | ||
169 | ) | 243 | ) |
170 | )) | 244 | )) |
171 | 245 | ||
@@ -185,7 +259,8 @@ class UserType extends AbstractType | @@ -185,7 +259,8 @@ class UserType extends AbstractType | ||
185 | 'required' => false, | 259 | 'required' => false, |
186 | 'attr' => array( | 260 | 'attr' => array( |
187 | 'class' => 'esc_agregado' | 261 | 'class' => 'esc_agregado' |
188 | - ) | 262 | + ), |
263 | + 'years' => range(2003, date("Y")) | ||
189 | )) | 264 | )) |
190 | 265 | ||
191 | ->add('documento_agregado', FileType::class, array( | 266 | ->add('documento_agregado', FileType::class, array( |
@@ -195,6 +270,19 @@ class UserType extends AbstractType | @@ -195,6 +270,19 @@ class UserType extends AbstractType | ||
195 | 'attr' => array( | 270 | 'attr' => array( |
196 | 'style' => 'display:none;', | 271 | 'style' => 'display:none;', |
197 | 'class' => 'esc_agregado' | 272 | 'class' => 'esc_agregado' |
273 | + ), | ||
274 | + 'constraints' => array( | ||
275 | + new File(array( | ||
276 | + 'maxSize' => '1024K', | ||
277 | + 'mimeTypes' => [ | ||
278 | + 'application/pdf', | ||
279 | + 'application/x-pdf', | ||
280 | + 'image/png', | ||
281 | + 'image/jpg', | ||
282 | + 'image/jpeg' | ||
283 | + ], | ||
284 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
285 | + )) | ||
198 | ) | 286 | ) |
199 | )) | 287 | )) |
200 | 288 | ||
@@ -215,7 +303,8 @@ class UserType extends AbstractType | @@ -215,7 +303,8 @@ class UserType extends AbstractType | ||
215 | 'required' => false, | 303 | 'required' => false, |
216 | 'attr' => array( | 304 | 'attr' => array( |
217 | 'class' => 'esc_titular' | 305 | 'class' => 'esc_titular' |
218 | - ) | 306 | + ), |
307 | + 'years' => range(2003, date("Y")) | ||
219 | )) | 308 | )) |
220 | 309 | ||
221 | ->add('documento_titular', FileType::class, array( | 310 | ->add('documento_titular', FileType::class, array( |
@@ -225,6 +314,19 @@ class UserType extends AbstractType | @@ -225,6 +314,19 @@ class UserType extends AbstractType | ||
225 | 'attr' => array( | 314 | 'attr' => array( |
226 | 'style' => 'display:none;', | 315 | 'style' => 'display:none;', |
227 | 'class' => 'esc_titular' | 316 | 'class' => 'esc_titular' |
317 | + ), | ||
318 | + 'constraints' => array( | ||
319 | + new File(array( | ||
320 | + 'maxSize' => '1024K', | ||
321 | + 'mimeTypes' => [ | ||
322 | + 'application/pdf', | ||
323 | + 'application/x-pdf', | ||
324 | + 'image/png', | ||
325 | + 'image/jpg', | ||
326 | + 'image/jpeg' | ||
327 | + ], | ||
328 | + 'mimeTypesMessage' => 'Sólo se permiten extensiones png, jpeg y pdf' | ||
329 | + )) | ||
228 | ) | 330 | ) |
229 | )) | 331 | )) |
230 | 332 |