
    Mg                         d dl mZ d dlmZ  G d dej                        Z G d de      Z G d de      Z G d	 d
e      Z G d de      Z	 G d de      Z
y)    )ValidationError)modelsc                   l    e Zd Z ej                  d      Z ej                  d      Z G d d      Zy)TimeStampMixinTauto_now_add)auto_nowc                       e Zd ZdZy)TimeStampMixin.MetaTN)__name__
__module____qualname__abstract     7/var/www/peopleoo.sandbox-dev.co.uk/apps/quiz/models.pyMetar   
   s    r   r   N)r   r   r   r   DateTimeField
created_at
updated_atr   r   r   r   r   r      s0    %%%48J%%%t4J r   r   c                       e Zd Z ej                  d      Z ej                  d      Z ej                  d      Z	 ej                  dddd	      Zd
 Zy)Quizd   
max_lengthF)default   
quiz_iconsTz&Icon must be a .png file,  60px * 60px)	upload_tonullblank	help_textc                     | j                   S N)nameselfs    r   __str__zQuiz.__str__   s    yyr   N)r   r   r   r   	CharFieldr%   BooleanFieldis_publishedPositiveIntegerFieldminutes_to_complete_quiz
ImageFieldiconr(   r   r   r   r   r      sW    6s+D&6&&u5L:v::1E6|$dV~Dr   r   c                       e Zd Zg dZ ej
                  d      Z ej                  e      Z ej                  e
ej                  d      Zd Zy)	Question))r   Multiple Select   zSingle Select)   zWritten Answer   r   choices	questions	on_deleterelated_namec                     | j                   S r$   )question_textr&   s    r   r(   zQuestion.__str__#   s    !!!r   N)r   r   r   QUESTION_TYPESr   r)   r>   IntegerFieldquestion_type
ForeignKeyr   CASCADEquizr(   r   r   r   r1   r1      sN    N %F$$4M'F''?M6TV^^+VD"r   r1   c                       e Zd Z ej                  d      Z ej                  ddd      Z ej                  eej                  d      Z
d Zy)	Optionr6   r   T)r    r!   r   optionsr:   c                     | j                   S r$   )option_textr&   s    r   r(   zOption.__str__,   s    r   N)r   r   r   r   r)   rI   option_descrB   r1   rC   questionr(   r   r   r   rF   rF   '   sJ    "&""c2K"&""DSIK v  V^^R[\H r   rF   c                   R   e Zd Zg dZ ej
                  dej                        Z ej
                  eej                        Z	 ej                  e      Z ej                  dd      Z ej
                  eddej                  d      Z ej"                  edd	
      Zd Zd Zy)Answer))r   Writtenr3   )r5   r2   carers.Profiler;   r7   T)r    r!   single_select_answers)r    r!   r;   r<   multi_select_answers)r!   r<   c                    | j                   dk(  r| j                  st        d      | j                   dk(  r| j                  st        d      | j                   dk(  r&| j                  j                         st        d      yy)z1Enforce validation for correct answer type usage.r   z&Written answers must have answer_text.r4   z2Single select answers must have a selected_option.r5   z0Multi-select answers must have selected_options.N)answer_typeanswer_textr   selected_optionselected_optionsexistsr&   s    r   cleanzAnswer.cleanF   sz    q )9)9!"JKKq )=)=!"VWWq )>)>)E)E)G!"TUU *H r   c                 :    d| j                    d| j                   S )Nz
Answer by z for Question )profilerK   r&   s    r   r(   zAnswer.__str__O   s    DLL>GGr   N)r   r   r   ANSWER_TYPESr   rB   rC   r[   r1   rK   r@   rT   	TextFieldrU   rF   SET_NULLrV   ManyToManyFieldrW   rY   r(   r   r   r   rM   rM   0   s    L  f 0FNNKG v  V^^DH%&%%l;K"&""D9K'f''//,O .v--d)?VHr   rM   c                       e Zd Z ej                  d      Z ej                  dej                        Z ej                  e	ej                        Z
y)CompletedQuizTr   rO   rP   N)r   r   r   r   r   completed_atrB   rC   r[   r   rD   r   r   r   ra   ra   S   sE    '6''T:Lf 0FNNKG6TV^^<Dr   ra   N)django.core.exceptionsr   	django.dbr   Modelr   r   r1   rF   rM   ra   r   r   r   <module>rf      sZ    2 V\\ > "~ " ^   H^  HF=N =r   