a
    3j$                     @   s4  d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
mZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZm Z m!Z!m"Z" G dd deZ#G dd	 d	eZ$G d
d deZ%G dd deZ&G dd deZ'G dd deZ(G dd deZ)G dd deZ*G dd deZ+dS )    )	FlaskForm)StringFieldPasswordFieldSubmitFieldTextAreaFieldIntegerFieldSelectField)DataRequiredEqualToLengthValidationErrorNumberRangeOptionalInputRequired)UserOdiAno	TrimestreRangoOdiPersonalRolLocalizacionDivisionesGeneralesUnidadesGerenciasGeneralesCoordinaciones)ADMIN_ROLE_IDGERENTE_ROLE_IDSUPERVISOR_ROLE_IDEVALUADO_ROLE_IDc                   @   s>   e Zd Zede edddgdZede gdZe	dZ
dS )		LoginFormZUsuario   
   minmax
validatorsu   Contraseñau   Iniciar SesiónN)__name__
__module____qualname__r   r	   r   usernamer   passwordr   submit r.   r.   !/var/www/html/evaluacion/forms.pyr       s   r    c                   @   sF   e Zd Zede eddgdZede edddgdZ	e
d	Zd
S )OdiFormu   Descripción del ODI  )r%   r&   u   Peso (Valor numérico)   d   r#   zGuardar ODIN)r(   r)   r*   r   r	   r   descripcionr   r   pesor   r-   r.   r.   r.   r/   r0      s   r0   c                       sZ   e Zd Zede gedZede gedZede gedZ	e
dZ fddZ  ZS )AssignOdiForm   Añor'   coercer   EvaluadozAsignar ODIs/Competenciasc                    s   t t| j|i | dgdd tjtj  D  | j	_
dgdd tjtj D  | j_
dgdd tjjtdd	tj D  | j_
d S )
N)r   u   --- Año ---c                 S   s   g | ]}|j |jfqS r.   )id_anor4   ).0ar.   r.   r/   
<listcomp>       z*AssignOdiForm.__init__.<locals>.<listcomp>)r   z--- Trimestre ---c                 S   s   g | ]}|j |jfqS r.   )id_trimestrer4   )r<   sr.   r.   r/   r>      r?   )r   z--- Seleccionar Evaluado ---c                 S   s   g | ]}|j |jfqS r.   )id_personal	full_name)r<   ur.   r.   r/   r>      r?   T)id_rolestatu)superr6   __init__r   queryorder_byr4   descallr;   choicesr   r@   r   	filter_byr   nombrepersonal_id)selfargskwargs	__class__r.   r/   rH      s    *&$zAssignOdiForm.__init__)r(   r)   r*   r   r	   intr;   r@   strrP   r   r-   rH   __classcell__r.   r.   rT   r/   r6      s
   r6   c                       s   e Zd Zede edddgddZededd	d
e gdZe	dddge
 gdZe	de gedZedZ fddZ  ZS )EditUserForm   Nueva Contraseña   0   La contraseña debe tener al menos 6 caracteres.r$   messageu4   Dejar en blanco para mantener la contraseña actual.r'   descriptionu   Confirmar Nueva Contraseñar,   !   Las contraseñas deben coincidir.r^   r&   zEstatus del Usuario)TrueZActivo)FalseZInactivo)rM   r'   Rol del Usuarior8   zActualizar Usuarioc                    sj   t t| j|i | ddlm} | , tj }dd |D | j_	W d    n1 s\0    Y  d S )Nr   appc                 S   s   g | ]}|j |jfqS r.   )rE   r4   )r<   roler.   r.   r/   r>   c   r?   z)EditUserForm.__init__.<locals>.<listcomp>)
rG   rY   rH   rg   app_contextr   rI   rL   rE   rM   )rQ   rR   rS   rg   rolesrT   r.   r/   rH   ^   s
    

zEditUserForm.__init__)r(   r)   r*   r   r   r   r,   r
   confirm_passwordr   r   rF   r	   rV   rE   r   r-   rH   rX   r.   r.   rT   r/   rY   5   s2   

	rY   c                   @   s.   e Zd Zede edddgdZedZdS )SearchUserByCedulaFormu   Cédula del Evaluador2   u$   Cédula debe ser un número válido.r]   r&   zBuscar EvaluadoN)	r(   r)   r*   r   r	   r   cedular   r-   r.   r.   r.   r/   rl   e   s   rl   c                       s   e Zd Zedeg dZede gedZede gedZ	ede gedZ
ede gedZede gedZed	Z fd
dZ  ZS )AssignLocationFormre   r9   r'   u   Localizaciónr8   u
   DirecciónzGerencia Generalu   Gerencia de Líneau   Coordinaciónu   Asignar Ubicación y Rolc                    s   t t| j|i | ddlm} |  dg}|dd tjjdd	tj
 D  || j
_dg}|d	d tjjdd	tj D  || j_d
g| j_dg| j_dg| j_W d    n1 s0    Y  d S )Nr   rf   )r   u!   --- Seleccionar Localización ---c                 S   s   g | ]}|j |jfqS r.   )id_localizacionrO   )r<   lr.   r.   r/   r>      s   z/AssignLocationForm.__init__.<locals>.<listcomp>T)valido)r   u   --- Seleccionar Dirección ---c                 S   s   g | ]}|j |jfqS r.   )id_divisiones_generalesrO   )r<   dr.   r.   r/   r>      s   )r   z$--- Seleccionar Gerencia General ---)r   u&   --- Seleccionar Gerencia de Línea ---)r   u!   --- Seleccionar Coordinación ---)rG   rn   rH   rg   ri   extendr   rI   rN   rJ   rp   rL   rM   r   rs   id_unidadesid_gerencias_generalesid_coordinaciones)rQ   rR   rS   rg   Zloc_choicesZdiv_choicesrT   r.   r/   rH      s     




zAssignLocationForm.__init__)r(   r)   r*   r   rV   rE   r	   rp   r   rs   rv   rw   rx   r   r-   rH   rX   r.   r.   rT   r/   rn   j   s@   rn   c                   @   sJ   e Zd Zedee gdZedee gdZedee gdZe	dZ
dS )AssignCursosFormr7   ro   r   r:   zGuardar CursosN)r(   r)   r*   r   rV   r	   r;   r@   rP   r   r-   r.   r.   r.   r/   ry      s   ry   c                   @   s.   e Zd Zede edddgdZedZdS )TalentoHumanoObservationFormu   Observación de Talento Humanor2   r1   r#   r&   u   Guardar ObservaciónN)	r(   r)   r*   r   r	   r   observacion_thr   r-   r.   r.   r.   r/   rz      s   rz   c                   @   sJ   e Zd Zede edddgddZede edd	d
gdZe	dZ
dS )ChangePasswordFormrZ   r[   r\   r]   u   Mínimo 6 caracteres.r_   u   Confirmar Contraseñar,   ra   rb   r&   u   Cambiar ContraseñaN)r(   r)   r*   r   r	   r   r,   r
   rk   r   r-   r.   r.   r.   r/   r|      s   r|   N),	flask_wtfr   wtformsr   r   r   r   r   r   Zwtforms.validatorsr	   r
   r   r   r   r   r   modelsr   r   r   r   r   r   r   r   r   r   r   r   configr   r   r   r   r    r0   r6   rY   rl   rn   ry   rz   r|   r.   r.   r.   r/   <module>   s    $8$0B