
    Y~h                     @    d dl T d dlmZ  G d dej                  ZdS )    )*)cmf_question_resultc                   .     e Zd Z fdZ fdZd Z xZS )CmfQuestionResultc                 L    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     ww**,,}<<    c                     | j         s| j        dk    r|                                   t                      j        |i |S )Nexam)is_newr   _calc_statusr	   save)r   argskwargsr   s      r   r   zCmfQuestionResult.save	   sF    { 	 t~77uww|T,V,,,r   c                 <   |                      g d           | j        j        dk    ry| j        j        }||                                s	d| _        d S | j        j        }| j        j        s |	                                }d |D             }||v r	d| _        d S d| _        d S | j        j        dk    r?| j
        g k    r	d| _        d S | j
        d         | j        j        v r	d| _        d S d| _        d S | j        j        d	k    r| j
        g k    r	d| _        d S t          | j
                  t          | j        j                  k    rPt          | j        j                  }d}| j
        D ]}|| j        j        v r|d
z  }||k    r	d| _        d S d| _        d S d| _        d S d S )N)zquestion.typez!question.is_answer_case_sensitivezquestion.correct_answersinput	no_answerc                 6    g | ]}|                                 S  )lower).0as     r   
<listcomp>z2CmfQuestionResult._calc_status.<locals>.<listcomp>!   s     "F"F"F17799"F"F"Fr   successnot_successsinglechoicer   multichoice   )load_fieldsquestiontypeanswer_textvaluestripstatuscorrect_answersis_answer_case_sensitiver   answer_variantslen)r   user_answerr+   correctcntanswers         r   r   zCmfQuestionResult._calc_status   s    
 
 
 	 	 	 =((*0K"+*;*;*=*=")"m;O=9 G)//11"F"Fo"F"F"Fo--'+]>11#r)))%a(DM,III'+]=00#r)))T)**c$-2O.P.PPPdm;<<"2    F!>>>axs'>>"+DKKK"/DKKK+ 10r   )__name__
__module____qualname__r
   r   r   __classcell__)r   s   @r   r   r      s`        = = = = =- - - - -/, /, /, /, /, /, /,r   r   N)cmf.includemodules.learn.fieldsr   r   r   r   r   <module>r9      s[        4 4 4 4 4 49, 9, 9, 9, 9,+= 9, 9, 9, 9, 9,r   