
    h!                     f   S SK r S SKrS SKr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Jr  S SKJr  S SKJr  S SKJr  \" 5       r\
" 5         \R0                  " S	S
5      r\R5                  S5      \" \5      4S\S\4S jj5       r\R5                  S5      \" \5      4S\S\S\4S jj5       rg)    N)	APIRouterDependsHTTPExceptionFile
UploadFile)"disable_installed_extensions_check)GeneralState)QuizModuleQuestion)Registration)QuizAnswers)check_token_validityFILE_STORAGE_PATHfilesz/quizzes/generate/{module_id}	module_iddependenciesc                    Uu  p#UR                  [        5      R                  [        R                  U :H  [        R                  [
        R                  :H  5      R                  5       nU(       d
  [        SSS9eUR                  [        5      R                  [        R                  UR                  :H  [        R                  U :H  5      R                  5       nU(       d
  [        SSS9eUR                  [        5      R                  [        R                  U :H  5      R                  5       nU(       d
  [        SSS9e[        R                  " U5        [!        UR"                  [%        U5      5      nUS U n['        SUR(                   3SUR(                   3[*        R*                  R-                  5       [*        R*                  R-                  5       S [
        R                  UR                  UR                  S	9n	UR/                  U	5        UR1                  5         UR3                  U	5        U	R                  U	R(                  U	R4                  U V
Vs/ s HZ  n
U
R                  U
R6                  U
R8                   Vs/ s H'  nUR                  UR6                  UR:                  S
.PM)     snS.PM\     snn
S.$ s  snf s  snn
f )N  zModule introuvablestatus_codedetaili  u$   Utilisateur non inscrit à ce moduleu'   Aucune question trouvée pour ce modulezQuiz - u.   Quiz généré automatiquement pour le module )titledescription
start_dateend_datescorestater   registration_id)idcontent
is_correct)r    r!   answers)quiz_idr   r   	questions)queryr   filterr    r   r	   ACTIVEfirstr   r   user_idr   r   allrandomshufflemin	quizCountlenr
   r   datetimeutcnowaddcommitrefreshr   r!   r#   r"   )r   r   dbusermoduleregistrationr%   nombre_questionsquestions_selectionneesquizqas               BD:\kofCorporation\kof-academy-backend\app\routers\students\quiz.pygenerate_quizr@      s9   HB XXf$$VYY)%;V\\\M`M`=`aggiF4HII 		$$/1G1G91T	U	 
 4Z[[ "))(*<*<	*IJNNPI4]^^ NN96++S^<'(9)9: ~&DV\\NS&&--/""))+!!))$	D FF4LIIKJJt 77'' %

 % dd99 YY
 44AIIQ\\J
 %

	 
	

s   *J?=.J:+	J?:J?z/quizzes/{quiz_id}/submitr$   r#   c                 r   Uu  p4UR                  [        5      R                  [        [        R                  [        R
                  :H  5      R                  [        R
                  U :H  [        R                  UR
                  :H  5      R                  5       nU(       d
  [        SSS9eUR                  [        5      R                  [        R                  UR                  :H  5      R                  5       nSnU H  n[        S UR                   5       S 5      n	UR                  R!                  [#        UR
                  5      5      n
U
(       a  [%        U
5      U	:X  a  US-  nXul        [(        R(                  R+                  5       Ul        UR/                  5         M     UR
                  UUR,                  S.$ )Nr   u!   Quiz introuvable ou non autorisér   r   c              3   ^   #    U  H#  oR                   (       d  M  UR                  v   M%     g 7f)N)r"   r    ).0r>   s     r?   	<genexpr>submit_quiz.<locals>.<genexpr>q   s     59aTQTT9s   --   )r$   r   finished_at)r&   r
   joinr   r   r    r'   r*   r)   r   r   r   r+   nextr#   reponsesgetstrintr   r1   r2   endDater4   )r$   r#   r   r6   r7   r<   r%   r   r=   correct_answeruser_answers              r?   submit_quizrQ   Y   sR   HB 		lD00LOOC	D	GGw  DGG+

 
 	 4WXX "))(*<*<*NOSSUI E51995
 &&**3qtt953{+~=QJE 
((//1
		  77||     )r1   osr,   fastapir   r   r   r   r   fastapi_pagination.utilsr   app.enums.general_stater	   app.models.baser
   r   r   app.models.registrationr   app.schemas.userr   app.utils.authentificationr   routergetenvr   postrL   tupler@   rQ    rR   r?   <module>r`      s     	  G G G 0
 3 2 0 ( ;	 " $II17;  ,-8?@T8U :S : : .:z ()JQRfJg ' '{ '% ' *'rR   