ó
    ¯¹…j  ã                   óÞ  • S r SSKJrJrJrJrJrJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJr  SSKJrJr  SSKJr  SS	KJrJr  \" S
S/S9rS\S\S\4S jrS\S\4S jr\R;                  S5      S\" \5      \" \5      4S\S-  S\S\4S jj5       r\RA                  S5      \" S5      \" S5      \" S5      \" \5      \" \5      4S\S\S\S\S\4
S jj5       r!\RA                  S5      \" S5      \" \5      \" \5      4S\S\S\S\4S jj5       r"\R;                  S5      \" \5      \" \5      4S\S\S\4S jj5       r#\RI                  S5      \" \5      \" \5      4S\S\S\4S jj5       r%g) u3   Plantillas personalizadas por Ã¡rea de evaluaciÃ³n.é    )Ú	APIRouterÚDependsÚFileÚFormÚ
UploadFileÚstatus)ÚFileResponse)ÚSession)Úget_current_active_user)ÚEvaluationAreaTemplatesClass)Ú	api_errorÚapi_response)Úget_db)ÚRolModelÚ	UserModelz/evaluation-area-templateszEvaluation area templates)ÚprefixÚtagsÚsession_userÚdbÚreturnc                 ó¤  • [        [        U SS5      =(       d    S5      nUS:X  a  gUS:X  a  gUR                  [        5      R	                  [        R
                  U R                  :H  5      R                  5       nU(       a  UR                  (       d  g[        UR                  5      R                  5       nSU;   d  SU;   a  gS	U;   a  S
U;  a  gg)NÚrol_idr   é   Fé   TÚcoordinadorÚ	evaluadorÚadministradorÚsuper)ÚintÚgetattrÚqueryr   ÚfilterÚidr   ÚfirstÚrolÚstrÚlower)r   r   Úridr%   Úns        Ú/app/backend\routes\evaluation_area_templates.pyÚ_can_manage_templatesr+      s¨   € Ü
Œg�l H¨aÓ0×5°AÓ
6€CØ
ˆaƒxØØ
ˆaƒxØØ
�(‰(”8Ó
×
#Ñ
#¤H§K¡K°<×3FÑ3FÑ$FÓ
G×
MÑ
MÓ
O€CÞ�c—g—gØÜˆC�G‰G‹×ÑÓ€AØ˜Ó˜[¨AÓ-ØØ˜!Ó ¨qÓ 0ØØó    c                 ó@   • [        [        U SS5      =(       d    S5      $ )NÚcustomer_idr   )r   r    )r   s    r*   Ú_customer_idr/   $   s   € ÜŒw�| ]°AÓ6×;¸!Ó<Ð<r,   Ú NÚarea_idc                 ó\   • [        U5      R                  [        U5      U 5      n[        US9$ )N)Údata)r   Ú
list_itemsr/   r   )r1   r   r   r3   s       r*   Úlist_templatesr5   (   s,   € ô (¨Ó+×6Ñ6´|ÀLÓ7QÐSZÓ[€DÜ˜TÑ"Ð"r,   .ÚnameÚfilec              ƒ   ó~  #   • [        XC5      (       d  [        [        R                  SS9$ UR	                  5       I S h  v•N n[        U5      R                  [        U5      U =(       d    SR                  5       UUR                  =(       d    SUUR                  [        USS 5      (       a  [        UR                  5      OS S9nUR                  S5      S:X  a8  [        UR                  S	[        R                  5      UR                  S
S5      S9$ [!        UR                  S
S5      UR                  S5      S9$  Nü7f)Nz(No tienes permiso para crear plantillas.©Ústatus_codeÚmessager0   úplantilla.docxr#   )r.   r1   r6   Úfilenamer3   Úcontent_typeÚuser_idr   ÚerrorÚhttp_statusr;   ÚErrorÚOKr3   ©r;   r3   )r+   r   r   ÚHTTP_403_FORBIDDENÚreadr   Úcreater/   Ústripr=   r>   r    r   r#   ÚgetÚHTTP_400_BAD_REQUESTr   )r1   r6   r7   r   r   r3   Úresults          r*   Úcreate_templaterL   2   s  é € ô ! ×2Ñ2ÜÜ×1Ñ1Ø>ñ
ð 	
ð —‘“×€DÜ)¨"Ó-×4Ñ4Ü  Ó.Ø—˜B×%Ñ%Ó'ØØ—‘×2Ð"2ØØ×&Ñ&Ü(/°¸dÀD×(IÑ(I”�L—O‘OÔ$Ètð 5ð €Fð ‡z�z�(Ó˜wÓ&ÜØŸ
™
 =´&×2MÑ2MÓNØ—J‘J˜y¨'Ó2ñ
ð 	
ô  §
¡
¨9°dÓ ;À&Ç*Á*ÈVÓBTÑUÐUñ ùs   ‚<D=¾D;¿C=D=z/{template_id}Útemplate_idc              ƒ   óR  #   • [        X25      (       d  [        [        R                  SS9$ UR	                  5       I S h  v•N n[        U5      R                  U [        U5      UR                  =(       d    SUUR                  [        USS 5      (       a  [        UR                  5      OS 5      nUR                  S5      S:X  a8  [        UR                  S[        R                  5      UR                  SS	5      S9$ [        UR                  SS
5      UR                  S5      S9$  Næ7f)Nz-No tienes permiso para actualizar plantillas.r9   r<   r#   r   r@   rA   r;   rB   rC   r3   rD   )r+   r   r   rE   rF   r   Úreplace_filer/   r=   r>   r    r   r#   rI   rJ   r   )rM   r7   r   r   r3   rK   s         r*   Úreplace_template_filerP   Q   sú   é € ô ! ×2Ñ2ÜÜ×1Ñ1ØCñ
ð 	
ð —‘“×€DÜ)¨"Ó-×:Ñ:ØÜ�\Ó"Ø�‰×)Ð)ØØ×ÑÜ '¨°d¸D× AÑ AŒˆL�O‰OÔÀtó€Fð ‡z�z�(Ó˜wÓ&ÜØŸ
™
 =´&×2MÑ2MÓNØ—J‘J˜y¨'Ó2ñ
ð 	
ô  §
¡
¨9°dÓ ;À&Ç*Á*ÈVÓBTÑUÐUñ ùs   ‚<D'¾D%¿C'D'z/{template_id}/downloadc                 ób  • [        U5      nUR                  U [        U5      5      nU(       d  [        [        R
                  SS9$ UR                  U5      nU(       d  [        [        R
                  SS9$ [        UUR                  =(       d    UR                  UR                  =(       d    SS9$ )NzNo hay plantilla cargada.r9   z&Archivo de la plantilla no encontrado.zapplication/octet-stream)r=   Ú
media_type)r   Úget_rowr/   r   r   ÚHTTP_404_NOT_FOUNDÚabsolute_pathr	   Úoriginal_filenamer6   r>   )rM   r   r   ÚsvcÚrowÚpaths         r*   Údownload_templaterZ   n   s    € ô ' rÓ
*€CØ
�+‰+�k¤<°Ó#=Ó
>€CÞÜÜ×1Ñ1Ø/ñ
ð 	
ð ×Ñ˜SÓ!€DÞÜÜ×1Ñ1Ø<ñ
ð 	
ô ØØ×&Ñ&×3¨$¯)©)Ø×#Ñ#×AÐ'Añð r,   c                 óf  • [        X!5      (       d  [        [        R                  SS9$ [	        U5      R                  U [        U5      5      nUR                  S5      S:X  a8  [        UR                  S[        R                  5      UR                  SS5      S9$ [        UR                  SS5      S	9$ )
Nz+No tienes permiso para eliminar plantillas.r9   r   r@   rA   r;   rB   rC   )r;   )
r+   r   r   rE   r   Údeleter/   rI   rT   r   )rM   r   r   rK   s       r*   Údelete_templater]   ˆ   sž   € ô ! ×2Ñ2ÜÜ×1Ñ1ØAñ
ð 	
ô *¨"Ó-×4Ñ4°[Ä,È|ÓB\Ó]€FØ‡z�z�(Ó˜wÓ&ÜØŸ
™
 =´&×2KÑ2KÓLØ—J‘J˜y¨'Ó2ñ
ð 	
ô  §
¡
¨9°dÓ ;Ñ<Ð<r,   )&Ú__doc__Úfastapir   r   r   r   r   r   Úfastapi.responsesr	   Úsqlalchemy.ormr
   Úapp.backend.auth.auth_userr   Ú3app.backend.classes.evaluation_area_templates_classr   Úapp.backend.core.responsesr   r   Úapp.backend.db.databaser   Úapp.backend.db.modelsr   r   Úevaluation_area_templatesÚboolr+   r   r/   rI   r&   r5   ÚpostrL   rP   rZ   r\   r]   © r,   r*   Ú<module>rk      s(  ðÙ 9ç F× FÝ *Ý "å >Ý \ß >Ý *ß 5á%Ø'Ø
%Ð	&ñÐ ð¨	ð °wð À4ô ð"=˜yð =¨Sô =ð ×Ñ˜rÓ"àÙ˜&“/Ù%Ð&=Ó>ñ#Ø�4‰Zð#àð#ð ô#ó #ð#ð ×Ñ Ó#á˜“9Ù�S“	Ù˜C“yÙ˜&“/Ù%Ð&=Ó>ñVØðVà
ðVð ðVð 	ð	Vð
 ôVó $ðVð< ×ÑÐ 0Ó1ñ ˜C“yÙ˜&“/Ù%Ð&=Ó>ñ	VØðVà
ðVð 	ðVð ô	Vó 2ðVð8 ×ÑÐ8Ó9ñ ˜&“/Ù%Ð&=Ó>ñØðàðð ôó :ðð2 ×!Ñ!Ð"2Ó3ñ ˜&“/Ù%Ð&=Ó>ñ=Øð=àð=ð ô=ó 4ñ=r,   