U
    Įwh-                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_question_resultc                       s$   e Zd Z fddZdd Z  ZS )CmfQuestionResultc                    s&   | j s| jdkr|   t j||S )NZexam)Zis_newZ	exam_type_calc_statussupersave)selfargskwargs	__class__ -./modules/learn/models/cmf_question_result.pyr      s    zCmfQuestionResult.savec                 C   sL  |  dddg | jjdkr|| jj}|d ks4| s>d| _d S | jj}| jjsd|	 }dd |D }||krtd| _nd	| _n| jjd
kr| j
g krd| _n | j
d | jjkrd| _nd	| _n| jjdkrH| j
g krd| _nlt| j
t| jjkrBt| jj}d}| j
D ]}|| jjkr
|d7 }q
||kr:d| _nd	| _nd	| _d S )Nzquestion.typez!question.is_answer_case_sensitivezquestion.correct_answersinputZ	no_answerc                 S   s   g | ]}|  qS r   )lower).0ar   r   r   
<listcomp>   s     z2CmfQuestionResult._calc_status.<locals>.<listcomp>successZnot_successZsinglechoicer   Zmultichoice   )Zload_fieldsZquestiontypeZanswer_textvaluestripstatuscorrect_answersZis_answer_case_sensitiver   Zanswer_variantslen)r   Zuser_answerr   ZcorrectZcntZanswerr   r   r   r      sH    



zCmfQuestionResult._calc_status)__name__
__module____qualname__r   r   __classcell__r   r   r   r   r      s   r   N)Zcmf.includeZmodules.learn.fieldsr   r   r   r   r   r   <module>   s   