
    &6j)              
       F   S SK JrJr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  S SKJr  S SKJr  S S	KJrJrJrJrJrJrJr  S S
KJr  S SK J r J!r!  SSSSS.r"SSSS.r#\" SS/S9r$\$RK                  S5      \" \5      \" \5      4S\S\S\
4S jj5       r&\$RO                  S5      \" \5      \" \5      4S\(S\S\
4S jj5       r)\$RK                  S 5      \" \5      \" \5      4S!\S\S\
4S" jj5       r*\$RW                  S#5      \$RW                  S$5      \" \5      \" \5      4S\(S\S\
4S% jj5       5       r+\$RY                  S&5      \" \5      \" \5      4S\(S!\S\S\
4S' jj5       r-\$RO                  S(5      \" \5      \" \5      4S\(S\S\
4S) jj5       r.g*)+    )	APIRouterDependsstatus)JSONResponseResponse)get_db)Session)ActionIncidentListStoreActionIncidentUpdateActionIncident	UserLogin)ActionIncidentClass)ActionIncidentPDFClass)get_current_active_user)StudentModelStudentPersonalInfoModelStudentAcademicInfoModelSchoolModelProfessionalModelCourseModelSpecialEducationalNeedModel)professional_display_fields)datetimedatezEn curso	PendientezPor revisarResuelto)            u"   Desregulación emocional/conductalzOtra incidenciaOtro)r   r   r   z/actions_incidentszActions Incidents)prefixtags/action_listsession_userdbc                    U R                   c  SOU R                   nU(       a  UR                  OS n[        U5      R                  UU R                  U R
                  U R                  US9n[        U[        5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S	9$ U R                   c  S
OSn[        [        R                  SUUS.S	9$ )Nr   )pageitems_per_page
student_idtitle	school_idr   error  messagezInternal server errorr   r0   datastatus_codecontentz6Complete actions incidents list retrieved successfullyz(Actions incidents retrieved successfully   )r)   r-   r   get_allper_pager+   r,   
isinstancedictgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK)r%   r&   r'   
page_valuer-   resultr0   s          VC:\Users\jesus\Desktop\proyecto_pie360\backend\app\backend\routes\actions_incidents.pyindexrA       s    !&&.K4D4DJ*6&&DI $,,"++)) - F &$FJJx$8G$C==!::i1HI
 	
 KVJZJZJbF  iSG&&
     z
/edit/{id}idc                    [        U5      R                  U 5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [	        [
        R                  SUR                  SS5      S S.S9$ [	        [
        R                  SS	US.S9$ )
Nr   r.     r0   Action incident not foundr1   r3   r6   z+Action incident data retrieved successfully)r   r;   r9   r:   r   r   HTTP_404_NOT_FOUNDr=   rC   r&   r'   r?   s       r@   editrI   B   s     $((,F&$FJJx$8G$C11!::i1LM
 	
 &&D
 rB   z/storeactionc                 `   U R                  5       nU(       a  UR                  OS n[        U5      R                  X4S9n[	        U[         5      (       aA  UR                  S5      S:X  a,  [        [        R                  SUR                  SS5      S S.S9$ [        [        R                  S	S
US.S9$ )N)r-   r   r.   r/   r0   zError saving action incidentr1   r3      z$Action incident created successfully)
r:   r-   r   storer9   r;   r   r   r<   HTTP_201_CREATED)rJ   r&   r'   action_inputsr-   r?   s         r@   rM   rM   Y   s    KKMM +7&&DI $**=*NF&$FJJx$8G$C==!::i1OP
 	
 ++=
 rB   z/{id}z/delete/{id}c                    [        U5      R                  U 5      n[        U[        5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S9$ [        [        R                  SS	US.S9$ )
Nr   r.   rE   r0   rF   r1   r3   r6   z$Action incident deleted successfully)	r   deleter9   r:   r;   r   r   rG   r=   rH   s       r@   rQ   rQ   u   s     !$++B/F&$FJJx$8G$C11!::i1LM
 	
 &&=
 rB   z/update/{id}c                 8   UR                  SS9n[        U5      R                  X5      n[        U[         5      (       aA  UR	                  S5      S:X  a,  [        [        R                  SUR	                  SS5      S S.S	9$ [        [        R                  S
SUS.S	9$ )NT)exclude_unsetr   r.   rE   r0   rF   r1   r3   r6   z$Action incident updated successfully)	r:   r   updater9   r;   r   r   rG   r=   )rC   rJ   r&   r'   rO   r?   s         r@   rT   rT      s    KKdK3M $++B>F&$FJJx$8G$C11!::i1LM
 	
 &&=
 rB   z	/pdf/{id}c                    [        U5      R                  U 5      n[        U[        5      (       aA  UR                  S5      S:X  a,  [	        [
        R                  SUR                  SS5      S S.S9$ UR                  [        5      R                  [        R                  US   :H  5      R                  5       nUR                  [        5      R                  [        R                  US   :H  5      R                  5       nUR                  [        5      R                  [        R                  US	   :H  5      R                  5       nUR                  S
5      (       aF  UR                  [        5      R                  [        R                  US
   :H  5      R                  5       OS nU(       ap  UR                   (       a_  UR                  ["        5      R                  ["        R$                  S:H  ["        R                  UR                   :H  5      R                  5       OS nU(       a^  UR&                  (       aM  UR                  [(        5      R                  [(        R                  UR&                  :H  5      R                  5       OS n	Sn
U(       a  UR*                  (       aw  UR*                  n[,        R.                  " 5       nUR0                  UR0                  -
  UR2                  UR4                  4UR2                  UR4                  4:  -
  n
[7        U
5      n
U(       a  UR8                  (       a  UR8                  OSnU(       a  [;        X'5      OS nU(       a  UR<                  =(       d    SOSnU(       a#  UR>                  =(       d    SRA                  5       OSnSnUR                  S5      (       a\  UR                  S5      n[        U[6        5      (       a%  [B        RD                  " US5      R-                  5       nURG                  S5      n0 SUR                  SS5      _SU(       a  URH                  OS_SU(       a(  URJ                   SURL                   SURN                   3OS_SU_SU(       a,  UR*                  (       a  UR*                  RG                  S5      OS_SU
_SU	(       a  U	RP                  OS_SU(       a  URR                  OS_SU_S[7        UR                  SS5      5      _S[T        R                  UR                  S5      S5      _S[V        R                  UR                  S5      S5      _SUR                  SS5      _S UR                  S S5      _S!UR                  S!S5      _S"UR                  S"S5      _S#U_S$UUS%.En[Y        5       nUR[                  U5      nS&UR                  SS'5       S(US    S)3n[]        US*S+S,U S-30S.9$ )/Nr   r.   rE   r0   rF   r1   r3   r+   r-   professional_idr    incident_datez%Y-%m-%dz%d/%m/%Yr,   school_namestudent_name student_rut
birth_dateageneecourse_namez	Sin cursoincident_timeaction_type_nameaction_incident_type_idstatus_name	status_id
backgroundconductconsequencesrecommendationsprofessional_nameu   Asistente Técnico Diferencial)professional_positionprofessional_rutprofessional_secreduczFicha de registro - 	documentoz - z.pdfzapplication/pdfzContent-Dispositionzattachment; filename="")r5   
media_typeheaders)/r   r;   r9   r:   r   r   rG   queryr   filterr+   firstr   r   rC   r   	course_idr   deleted_status_idspecial_educational_need_idr   	born_dater   todayyearmonthdaystridentification_numberr   rut	full_namestripr   strptimestrftimerY   namesfather_lastnamemother_lastnamespecial_educational_needsr`   TYPE_OPTIONSSTATUS_OPTIONSr   generate_pdfr   )rC   r&   r'   action_resultstudent_personalstudent_academicschoolprofessionalcourser_   r^   r]   ry   r\   professional_disprl   professional_full_nameformatted_daterX   pdf_datapdf_generatorpdf_contentfilenames                          r@   r   r      s    (+//3M-&&=+<+<X+F'+Q11(,,Y8ST
 	
 xx 89@@AYAdAdhu  wC  iD  BD  E  K  K  Mxx 89@@AYAdAdhu  wC  iD  BD  E  K  K  MXXk"))+..M+<V*VW]]_F |I  |M  |M  N_  |`  |`288-.556G6J6Jm\mNn6nouuw  fjL HX  ]m  ]w  ]wRXXk"))+*G*G1*Lknn`p`z`zNz{  B  B  D  }AF Sc  hx  hT  hT"((.
/
6
67R7U7UYi  ZF  ZF  8F  G  M  M  O  Z^C C,66%//


jj:??*u{{EII.F*JZJZ\f\j\jIk.kl#h =MQaQwQw"88}KIU3BE[_8I)--3rL]/99?RFFHce N))%))/:mS))$--mZHMMOM&//
;""7B/Vv)) 	  ~N+112!4D4T4T3UUVWgWwWwVxy  TV 	{	
 	IY^n^x^x&0099*E  A 	s 	s,, 	Vv)) 	 	]..CD 	L,,]->->?X-Y[]^ 	~))-*;*;K*H"M 	m''b9 	=$$Y3 	))."=  	=,,->C!" 	3#$ "B,!1)H0 +,M,,X6K &m&7&7&M%NcRZ[iRjQkkopH$!%;H:Q#G
 rB   N)/fastapir   r   r   fastapi.responsesr   r   app.backend.db.databaser   sqlalchemy.ormr	   app.backend.schemasr
   r   r   r   )app.backend.classes.action_incident_classr   -app.backend.classes.action_incident_pdf_classr   app.backend.auth.auth_userr   app.backend.db.modelsr   r   r   r   r   r   r   &app.backend.utils.professional_displayr   r   r   r   r   actions_incidentspostrA   r;   intrI   rM   rQ   putrT   r    rB   r@   <module>r      s]   . . 4 * " h h I P > m  m  m N # 	 , 
	 
 ELMdEeu|  ~D  vE )  kr  B |$,34K,L\cdj\k S 	 RY  %, !AHI`Aaqxy  rA % Y gn  "6 '".).56M.N^efl^m s ) T[  * #, ~&LSTkLl  }D  EK  }L s 0 	 ry  '0 {#4;<S4Tdklrds RS R	 RZa R $RrB   