
    pi                     >   S SK JrJrJrJrJrJrJrJr  S SK	J
r
JrJr  S SKJrJr  S SKJrJrJrJr  S SKrS SKJr  S SKJrJr  S SKJr  S S	KJr  S S
KJrJ r J!r!J"r"  S SK#J$r$J%r&  S SK'J(r(J)r)  S SK*J+r+  \" 5       r, " S S\5      r- " S S\5      r. " S S\5      r/S\4S jr0S\4S jr1\,Re                  SS\
S9S\4S j5       r3\,Re                  S\SS9\" \5      4S\4S\S\4S  jj5       r5\,Rm                  S!\S"S9\" \5      4S\S#\-S\4S$ jj5       r7\,Re                  S!\S%S9\" S5      \" \5      4S\S&\\4   S\4S' jj5       r8\,Re                  S(\9\:   S)9\" S*5      \" \5      4S\S&\4S\4S+ jj5       r;\,Rm                  S(\:S)9\" \5      4S\S#\/S\4S, jj5       r<g)-    )	APIRouterRequestDependsHTTPExceptionFormBodyQueryPath)HTMLResponseRedirectResponseJSONResponse)Sessionaliased)OptionalListDictAnyN)datetime)	BaseModelField)	templates)get_db)current_userrequire_adminrequire_docente_or_adminrequire_csrf)	auth_crudnotification_crud)PlayerRatingValoracionJugador)Userc                   >    \ rS rSr% \\S'   \\S'   Sr\\   \S'   Sr	g)RatingIn   	player_idscoreNcomment )
__name__
__module____qualname____firstlineno__int__annotations__r'   r   str__static_attributes__r(       >/home/mario/Escritorio/thel4footbal/app/valoraciones/routes.pyr#   r#      s    NJ!GXc]!r1   r#   c                   `    \ rS rSr% \\S'   \\S'   \\S'   \" SSS9r\\S'   S	r	\
\   \S
'   Srg	)ValoracionItem   area	subescala	indicador      )geler&   Nobservacionesr(   )r)   r*   r+   r,   r/   r.   r   r&   r-   r=   r   r0   r(   r1   r2   r4   r4      s0    
INN!"E3"#'M8C='r1   r4   c                   0    \ rS rSr% \\S'   \\   \S'   Srg)ValoracionJugadorIn    r%   itemsr(   N)	r)   r*   r+   r,   r-   r.   r   r4   r0   r(   r1   r2   r?   r?       s    Nr1   r?   requestc                     [        U 5      nU(       d
  [        SSS9e US   nUS;  a
  [        SSS9eU$ ! [         a    [        USS 5      n N+f = f)N  zSe requiere rol docente.status_codedetailroledocenteadmin)r   r   	ExceptiongetattrrB   merH   s      r2   require_docenterP   '   sh    	g	B4NOO)&z ''4NOOI	  )r64()s   5 AAc                     U R                   R                  S5      =(       d$    U R                   R                  S5      =(       d    Sn[        X5        g )NzX-CSRF-TokenzX-Csrf-Token )headersgetr   )rB   tokens     r2   require_csrf_headerrV   3   s8    OO/\7??3F3F~3V\Z\E r1   z/valoracionesvaloraciones)nameresponse_classc                 4  #    [        U 5      nU(       d  [        U R                  S5      SS9$ SUR                  5       ;   a  [	        US   5      R                  5       OSnUS;  a  [        U R                  S5      SS9$ [        R                  " SXS	.5      $ 7f)
Nlogin/  urlrF   rH   rR   rI   	dashboardzvaloraciones.html)rB   user)r   r   url_forkeysr/   lowerr   TemplateResponserN   s      r2   valoraciones_pagere   :   s     	g	BGOOG$<#NN&,	&93r&z?  "rD''GOOK$@cRR%%&9w;[\\s   BBz/api/users/{user_id}api_user_detail)rY   rX   user_iddbc                    #    [        U5      nU(       d
  [        SSS9$ US   S;  a
  [        SSS9e[        R                  " X 5      nU(       d
  [        S	S
S9eU$ 7f)Nz/loginr\   r]   rH   rI   rD   zSolo docentes o adminrE     zUsuario no encontrado)r   r   r   r   get_user_with_satellites)rg   rB   rh   rO   	user_datas        r2   rf   rf   D   sa     	g	BH#>>	&z--4KLL222?I4KLLs   AAz/api/ratingsapi_ratings_createpayloadc                 :  #    [        U 5      n[        R                  " X!R                  5      nU(       d
  [	        SSS9e[        UR                  5      R                  5       S:w  a
  [	        SSS9e[        UR                  5      nUR                  =(       d    SR                  5       n[        R                  " 5       R                  SS	9n[        [        UR                  5      [        US
   5      UUUS9nUR!                  U5        UR#                  5         SS0$ 7f)Nrj   zJugador no encontradorE   alumno  zSolo se pueden valorar alumnosrR   seconds)timespecid)r%   
docente_idr&   r'   
created_atokT)r   r   get_user_by_idr%   r   r/   rH   rc   r-   r&   r'   stripr   utcnow	isoformatr   addcommit)	rB   rn   rh   rO   playerr&   r'   nowratings	            r2   rm   rm   Q   s     	!'	*B%%b*;*;<F4KLL
6;;8+4TUUE$"++-G
//

%
%y
%
9Cg''(r$x=F FF6NIIK$<s   DDapi_ratings_listr%   c                   #    [        U 5      n[        [        5      n[        [        5      nUR                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  UR                  R                  S5      UR                  R                  S5      5      R                  XDR
                  [        R                  :H  5      R                  XUR
                  [        R                  :H  5      nU(       a+  UR                  [        R                  [        U5      :H  5      nUR!                  [        R
                  R#                  5       5      nUR%                  5       nU Vs/ s H^  nUR
                  UR                  UR                  UR                  UR                  UR                  UR&                  UR(                  S.PM`     n	nU	$ s  snf 7f)Nplayer_namedocente_name)rt   r%   ru   r&   r'   rv   r   r   )r   r   r!   queryr   rt   r%   ru   r&   r'   rv   rX   labeljoinfilterr-   order_bydescallr   r   )
rB   r%   rh   rO   PlayerDocenter   rowsrdatas
             r2   r   r   h   so    	!'	*BT]FdmGHH-(>*	 d699 6 66 
d7JJ,"9"99: 
 \33s9~EFNN<??//12E99;D  A	 $$Q[[WW!,,==!..	

  	  Ks   FG?A%G:6	G?z/api/valoraciones_jugador)response_model.c                   #    [        U 5        UR                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  R                  S5      5	      R                  [        [        R                  [        R
                  :H  5      R!                  [        R"                  U:H  5      R%                  [        R                  R'                  5       [        R                  [        R                  [        R                  [        R                  5      R)                  5       nU Vs/ s Hr  nUR                  UR                  UR
                  UR                  UR                  UR                  UR                  UR                  =(       d    SUR*                  S.	PMt     sn$ s  snf 7f)Nr   rR   )	eval_idrv   ru   r6   r7   r8   r&   r=   r   )rP   r   r    r   rv   ru   r6   r7   r8   r&   r=   r!   rX   r   r   rt   r   r%   r   r   r   r   )rB   r%   rh   r   r   s        r2   api_valoraciones_jugador_listr      si    G88!!$$$$####''		'
 d4-888 f((I5 h$$))+!!#### 
ce% 	@  A yy,,,,FFWW__2NN
	
   s   E>H A9G<9Hc                   #    [        U 5      n[        U 5        UR                  (       d
  [        SSS9e[        R
                  " S5      n[        R                  " 5       R                  S5      nUR                   H  n[        UUR                  [        US   5      UR                  R                  5       UR                  R                  5       UR                  R                  5       [        UR                   5      UR"                  =(       d    SR                  5       =(       d    S US9	nUR%                  U5        M     UR'                  5         S	US
.$ 7f)Nrq   u   Sin ítems en la evaluación.rE      z%Y-%m-%dT%H:%M:%Srt   rR   )	r   r%   ru   r6   r7   r8   r&   r=   rv   T)rw   r   )rP   rV   rA   r   secrets	token_hexr   r   strftimer    r%   r-   r6   ry   r7   r8   r&   r=   r|   r}   )rB   rn   rh   rO   r   r   itvs           r2   api_valoraciones_jugador_creater      s     		!B ==4STT"G
,,.
!
!"5
6Cmm''2d8}ll((*ll((*bhh-++1r88:Bd

 	q	  IIK7++s   EE)=fastapir   r   r   r   r   r   r	   r
   fastapi.responsesr   r   r   sqlalchemy.ormr   r   typingr   r   r   r   r   r   pydanticr   r   app.databaser   app.models.baser   app.auth.depsr   r   r   r   
app.modelsr   r   
notif_crudapp.models.ratingr   r    app.models.userr!   routerr#   r4   r?   rP   rV   rT   re   r-   rf   postrm   r   listdictr   r   r(   r1   r2   <module>r      s   W W W J J + , ,   % " " ] ] A =  	"y "
(Y ( )  
W 
! ! O.N]W ] O] "<FWXHOPV 
3 
 
g 
 Y
 ^L?STPWX^P_ g  g  U, N<>PQHMdcjkqcr  G    Y`   R D 'T
CKPQT:elmset $ $S $[b $ D$L (>hopvhw ,7 ,EX ,^e , ?,r1   