
    Mȭh                     8   S SK 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  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JrJrJrJr  \" 5       r\" 5         \ R:                  " SS5      r\R?                  S5      \
" S5      \" \	5      4S\ S\S\!4S jj5       r"\R?                  S5      \
" S5      \" \	5      4S\ S\S\!4S jj5       r#\RI                  S5      \" S5      \" \	5      4S\ S\%S\!4S jj5       r&\RO                  S5      \" \	5      4S\%S\!4S jj5       r(\R?                  S5      \" \	5      4S\%S\S\!4S jj5       r)\RI                  S5      \" \	5      4S \%S!\S\!4S" jj5       r*\RO                  S5      \" \	5      4S \%S\!4S# jj5       r+g)$    N)	APIRouterDependsHTTPExceptionForm)"disable_installed_extensions_check)check_user_is_admin)Body)List)GeneralState)Question)Module)Answer)QuestionCreateMQuestionResponseAnswerCreateAnswerResponseQuestionsBatchCreateQuestionSchemaFILE_STORAGE_PATHfilesz/modules/{module_id}/questions.	module_idquestion_datadependenciesc                 .   Uu  p4UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  [        SS5      e[        UR                  U S9nUR                  U5        UR                  5         UR                   H=  n[        UR                  UR                  UR                  S9nUR                  U5        M?     UR                  5         UR                  U5        S[        R                   " U5      S.$ )N  Module introuvablecontentr   r   
is_correctquestion_idu   Question créée avec succès)messagequestion)queryr   filteridfirstr   r   r   addflushanswersr   r    commitrefreshr   from_orm)	r   r   r   dbadminmodulenew_questionanswer_dataanswers	            CD:\kofCorporation\kof-academy-backend\app\routers\admins\quizzes.pycreate_question_with_answersr5      s     IBXXf$$VYY)%;<BBDFC!566%%L FF<HHJ$,,''"--$

 	v - IIKJJ| 3#,,\:     z$/modules/{module_id}/questions/batch
batch_datac                    Uu  p4UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d  [        SS5      e/ nUR                   H  n[        UR                  U S9nUR                  U5        UR                  5         UR                   H=  n	[        U	R                  U	R                  UR                  S9n
UR                  U
5        M?     UR                  U5        M     UR                  5         U H  nUR!                  U5        M     [#        U5       S3U Vs/ s H  n[$        R&                  " U5      PM     snS.$ s  snf )Nr   r   r   r   u    questions créées)r"   	questions)r$   r   r%   r&   r'   r   r9   r   r   r(   r)   r*   r   r    appendr+   r,   lenr   r-   )r   r7   r   r.   r/   r0   created_questionsr   r1   r2   r3   qs               r4   create_questions_batchr>   >   s[    IBXXf$$VYY)%;<BBDFC!566#--!))
 	|

 )00K#++&11(OOF
 FF6N 1 	  .% .( IIK 


1  /011DE  zK  UL  zKtuUcUlUlmnUo  zK  UL  M  M  ULs   > E#z/questions/{question_id}r!   r   c                 
   Uu  p4UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eUb  Xl        UR                  5         UR                  U5        U$ )Nr   Question introuvablestatus_codedetail)	r$   r   r%   r&   r'   r   r   r+   r,   )r!   r   r   r.   r/   r#   s         r4   update_questionrD   i   sq     IB xx!(()CDJJLH4JKK "IIKJJxOr6   c                     Uu  p#UR                  W5      R                  UR                  U :H  5      R                  5       nU(       d
  [	        SSS9eUR                  U5        UR                  5         SS0$ )Nr   r@   rA   r"   u   Question supprimée)r$   r%   r&   r'   r   deleter+   )r!   r   r.   r/   r#   s        r4   delete_questionrG      sf    IBxx!(()CDJJLH4JKKIIhIIK,--r6   z /questions/{question_id}/answersr3   c                 d   Uu  p4UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9e[        SSUR                  0UR                  5       D6nUR                  U5        UR                  5         UR                  U5        U$ )Nr   r@   rA   r!    )r$   r   r%   r&   r'   r   r   dictr(   r+   r,   )r!   r3   r   r.   r/   r#   
new_answers          r4   
add_answerrL      s    IBxx!(()CDJJLH4JKKAHKKA6;;=AJFF:IIKJJzr6   z/answers/{answer_id}	answer_iddatac                 \   Uu  p4UR                  [        5      R                  [        R                  U :H  5      R	                  5       nU(       d
  [        SSS9eUR                  SS9R                  5        H  u  pg[        XVU5        M     UR                  5         UR                  U5        U$ )Nr      Réponse introuvablerA   T)exclude_unset)r$   r   r%   r&   r'   r   rJ   itemssetattrr+   r,   )rM   rN   r   r.   r/   r3   fieldvalues           r4   update_answerrV      s    IBXXf$$VYY)%;<BBDF4JKK			5;;=u% >IIKJJvMr6   c                 F  #    Uu  p#UR                  W5      R                  UR                  U :H  5      R                  5       nU(       d
  [	        SSS9e[
        R                  Ul        UR                  5       I S h  vN   UR                  U5      I S h  vN   SS0$  N! N
7f)Nr   rP   rA   r"   u   Réponse supprimée)
r$   r%   r&   r'   r   r   DELETEDstater+   r,   )rM   r   r.   r/   r3   s        r4   delete_answerrZ      s     IBXXf$$VYY)%;<BBDF4JKK''FL
))+
**V
,-- s$   A9B!;B<B!B	B!B!),osfastapir   r   r   r   fastapi_pagination.utilsr   app.utils.authentificationr   r	   typingr
   app.enums.general_stater   app.models.questionr   app.models.moduler   app.models.answerr   app.schemas.adminr   r   r   r   r   r   routergetenvr   postinttupler5   r>   putstrrD   rF   rG   rL   rV   rZ   rI   r6   r4   <module>rl      s   	 ; ; G :   1 ( $ $ E  E	 " $II17;  -. &*#Y!"56  "    / D 34 (,Cy!"56'M'M$'M 'M 5'MT &' :!"56	 	 (. )*<CDW<X . .E . +. /0MTUhMi 	C 	 	U 	 1	 "#LSTgLh 	S 	 	E 	 $	 %&>EFY>Z .3 .e . '.r6   