
    {oin                         S SK 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J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  S S
KJr  S SKrS SKJr  S SKJrJrJrJrJ r   S r!S r"S r#g)    )requestjsonifymake_responseg	send_file)error_response)SchoolTable)Selectfunc)db)encrypt_passwordcheck_password)generate_token)PrincipalTable)UPLOAD_FOLDER)secure_filenameN)datetime)allowed_filegenerate_excel_reportprocess_student_fileprocess_teacher_filevalidate_headersc            
      r   [         R                  " 5       =(       d    0 n U R                  SS5      R                  5       R	                  5       nU R                  S5      nU R                  S5      nU(       a  U(       a  U(       d  [        SS5      $ [        [        5      R                  [        R                  " [        R                  " [        R                  5      5      U:H  [        R                  U:H  5      n[        R                  R                  U5      R!                  5       nU(       d  [        SS5      $ UR"                  (       d8  [%        U5      Ul        SUl        [        R                  R)                  5         S	nOPUR&                  n[+        U[,        5      (       a  UR/                  S
5      n[1        Xs5      (       d  [        SS5      $ Sn[3        UR4                  S5      n[7        [9        SUUR4                  UR                  UR                  S.S.5      S5      n	U	R;                  SUSSSSS9  U	$ )Nschool_name 	school_idpasswordzAll fields are required!  zInvalid CredentialTzUWelcome! Your account has been successfully activated and your password has been set.zutf-8  zLogin successful. Welcome back!school)idr   r   )successmessager       
auth_tokenlax/i:	 )httponlysamesitepathmax_age)r   get_jsongetstriplowerr   r
   r	   wherer   trimr   r   r   sessionexecutescalar_one_or_none
isLoggedInr   r   commit
isinstancebytesdecoder   r   r!   r   r   
set_cookie)
bodyr   r   r   stmtr    r#   stored_passwordtokenresponses
             ?D:\beyond school\05_solvesmart\server\src\controller\schools.py
login_funcrA      s   #D((="-335;;=K%Ixx
#Hix8#>>+$$

499[4456+E*D ZZ%88:F2C88*84 


i //ou---44W=Oo88!"6<<3699h/EW))!--))
&  	H    ( O    c                     [         R                  n U R                  nU (       d  [        SS5      $ [        R
                  " 5       nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nU(       a  U(       a  U(       d  [        SS5      $ [        [        5      R                  [        R                  U:H  5      n[        R                  R                  U5      R                  5       nU(       a  [        SS	5      $ [        UUUUUS
9n	[        R                  R                  U	5        [        R                  R!                  5         [#        SSS.5      S4$ )NzSchool not found  	firstnamelastnameusernamer   zAll fields are requiredz<Username is already exist! Please try with diffrent usernamer   )rE   rF   rG   r   r   Tz2Principal Added successfully with default password)r"   r#      )r   current_userr!   r   r   r,   r-   r
   r   r0   rG   r   r2   r3   r4   addr6   r   )
r    r   r;   rE   rF   rG   r   stmt1is_exist	principals
             r@   principal_funcrN   X   s,   ^^F		I0#66D%Ixx
#Hxx
#Hxx
#HHH7==>"(()@)@H)LMEzz!!%(;;=H\^abb
I JJNN9JJG  	 rB   c            	      $   [         R                  n U (       d  [        SS5      $ S[        R                  ;  a  [        SS5      $ [        R                  S   nUR
                  S:X  a  [        SS5      $ [        UR
                  5      (       d  [        SS5      $ [        R                  R                  S	5      nU(       a  US
;  a  [        SS5      $ [        UR
                  5      n[        R                  R                  [        5      (       d  [        R                  " [        5        [        R                   " 5       R#                  S5      nU SU SU 3n[        R                  R%                  [        U5      nUR'                  U5        [)        Xb5      u  pxU(       d  [        SU 3S5      $ US:X  a  [+        X`R,                  5      n	O [/        X`R,                  U R0                  5      n	[3        XU R,                  5      n
[5        U
SSU SU S3S9$ )NzNo active school foundrD   filezNo file providedr   zNo file selectedr   z8Invalid file type. Only .xlsx and .xls files are allowedtype)studentteacherz,Invalid type. Must be 'student' or 'teacher'z%Y%m%d_%H%M%S_z!Please add the required headers. rR   zAapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetT_report_z.xlsx)mimetypeas_attachmentdownload_name)r   rI   r   r   filesfilenamer   formr-   r   osr*   existsr   makedirsr   nowstrftimejoinsaver   r   r!   r   streamr   r   )r    rP   	file_typerZ   	timestampunique_filename	file_pathis_validr#   resultexcel_buffers              r@   upload_funcrk   ~   s   ^^F6<<W]]"0#66== D}}0#66&&XZ]^^  (I	)??!"PRUVVt}}-H77>>-((
M"''8I"1YKq
;O]O<IIIi(>H A'KSQQI%i;%iFMMJ )FIIFL X&Kx	{%@	
 
rB   )$flaskr   r   r   r   r   src.utils.responser   
src.modelsr	   
sqlalchemyr
   r   srcr   src.lib.bcryptr   r   src.lib.jwtr   r   envr   werkzeug.utilsr   r\   r   src.utils.upload_filer   r   r   r   r   rA   rN   rk    rB   r@   <module>rw      sH    ? ? - " #  ; & %  * 	  @F#L2
rB   