
    OSh                     D    d dl  d dlmZ  G d dej                        Zy)    )*)cmf_question_resultc                   .     e Zd Z fdZ fdZd Z xZS )CmfQuestionResultc                 (    t         |          dgz   S )N	exam_type)supersave_preload_fields)self	__class__s    -./modules/learn/models/cmf_question_result.pyr
   z%CmfQuestionResult.save_preload_fields   s    w*,}<<    c                 x    | j                   s| j                  dk(  r| j                          t        |   |i |S )Nexam)is_newr   _calc_statusr	   save)r   argskwargsr   s      r   r   zCmfQuestionResult.save	   s5    {{t~~7w|T,V,,r   c                    | j                  g d       | j                  j                  dk(  r| j                  j                  }||j                         sd| _        y | j                  j                  }| j                  j                  s-|j                         }|D cg c]  }|j                          }}||v rd| _        y d| _        y | j                  j                  dk(  rL| j                  g k(  rd| _        y | j                  d   | j                  j                  v rd| _        y d| _        y | j                  j                  dk(  r| j                  g k(  rd| _        y t        | j                        t        | j                  j                        k(  ret        | j                  j                        }d}| j                  D ]   }|| j                  j                  v s|d	z  }" ||k(  rd| _        y d| _        y d| _        y y c c}w )
N)zquestion.typez!question.is_answer_case_sensitivezquestion.correct_answersinput	no_answersuccessnot_successsinglechoicer   multichoice   )load_fieldsquestiontypeanswer_textvaluestripstatuscorrect_answersis_answer_case_sensitiveloweranswer_variantslen)r   user_answerr%   acorrectcntanswers          r   r   zCmfQuestionResult._calc_status   s    
 	 ==(**00K"+*;*;*=)"mm;;O==99)//16E"F1779"F"Fo-'+]]>1##r))%%a(DMM,I,II'+]]=0##r))T))*c$--2O2O.PPdmm;;<"22  F!>!>>axs  '>"+DK"/DK+ 1 #Gs   H)__name__
__module____qualname__r
   r   r   __classcell__)r   s   @r   r   r      s    =-/,r   r   N)cmf.includemodules.learn.fieldsr   r    r   r   <module>r6      s     49,+== 9,r   