ó
Ô¬ÄVc           @   sÜ   d  d l  m Z d  d l m Z d  d l m Z e d e j ƒ Z d e j f d „  ƒ  YZ	 d e j f d „  ƒ  YZ
 d	 e j f d
 „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d e j f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   models(   t   settings(   t   FileSystemStoraget   locationt   PaperCategoryc           B   s>   e  Z e j d  d ƒ Z e j d d ƒ Z d „  Z d „  Z RS(   t
   max_lengthid   t   defaulti    c         C   s   |  j  S(   N(   t   name(   t   self(    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   __unicode__   s    c         C   s   t  j j d |  d t ƒ } | S(   Nt   categoryt   enabled(   t   Papert   objectst   filtert   True(   R   t   papers(    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt
   get_papers   s    (	   t   __name__t
   __module__R    t	   CharFieldR   t   IntegerFieldt   orderR	   R   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR   	   s   	R   c        	   B   s=  e  Z e j d  d ƒ Z e j d e ƒ Z e j d ƒ Z	 e j
 d e d e ƒ Z e j
 d e ƒ Z e j
 d e ƒ Z e j d d d e d e ƒ Z e j d  d	 d e d e d
 d ƒ Z e j
 d e d
 d ƒ Z e j d d ƒ Z e j d d ƒ Z e j d e ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   R   id   t   uniqueR   t   blankt   nullt	   upload_toR   t   storageiÈ   t	   help_texts   Paste the external url aboves   Paste your embed code aboveR   i    c         C   s   |  j  S(   N(   R   (   R   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR	   *   s    c         C   s"   t  j j d |  ƒ j d ƒ } | S(   Nt   paperR   (   t   PaperSectionR   R   t   order_by(   R   t   paper_sections(    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_sections-   s    c         C   s   t  j j d |  ƒ } | S(   NR   (   t   PaperQuestionR   R   (   R   t	   questions(    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_all_questions1   s    c         C   s(   t  j j d |  d t ƒ j d ƒ } | S(   NR   t   paper_section__isnullR   (   R"   R   R   R   R   (   R   R#   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_questions6   s    $c         C   s?   |  j  ƒ  } | r7 | j ƒ  | d } | j d } | Sd Sd  S(   Ni    i   (   R!   t   reverseR   (   R   t   sectionst   sectionR   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_next_section_order;   s    

c         C   sA   |  j  ƒ  } | r9 | j ƒ  } | d } | j d } | Sd Sd  S(   Ni    i   (   R&   R'   R   (   R   R#   t   questionR   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_next_orderF   s    
(   R   R   R    R   R   t	   SlugFieldR   t   slugt
   ForeignKeyR
   t	   TextFieldt   subtitlet   content_leftt   content_rightt	   FileFieldt   fst   pdf_filet   external_urlt
   embed_codeR   t   cpd_creditst   pass_percentaget   BooleanFieldt   FalseR   R	   R!   R$   R&   R*   R,   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR      s$   $					R   c           B   sc   e  Z e j d  ƒ Z e j d d ƒ Z e j ƒ  Z d „  Z	 d d d „  ƒ  YZ
 d „  Z d „  Z RS(	   R   R   iÈ   c         C   s   |  j  S(   N(   R   (   R   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR	   Y   s    t   Metac           B   s   e  Z d  g Z RS(   R   (   R   R   t   ordering(    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR=   \   s   c         C   s"   t  j j d |  ƒ j d ƒ } | S(   Nt   paper_sectionR   (   R"   R   R   R   (   R   R#   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR&   _   s    c         C   s?   |  j  ƒ  } | r7 | j ƒ  | d } | j d } | Sd Sd  S(   Ni    i   (   R&   R'   R   (   R   R#   R+   R   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR,   c   s    

(    (   R   R   R    R/   R   R   R   R   R   R	   R=   R&   R,   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR   S   s   		R"   c           B   sä   e  Z d d d f Z e j d ƒ Z e j d d e d	 e ƒZ e j d
 d d d ƒ Z	 e j
 d
 d d e ƒ Z e j d e ƒ Z e j ƒ  Z e j d e d	 e ƒ Z e j d e d	 e ƒ Z d „  Z d „  Z d d d „  ƒ  YZ RS(   u   selects   Selection (Choose One)u   multi-selects   Selection (Choose Multiple)u
   true-falses   True or FalseR   R   R   R   R   iÈ   t   verbose_namet   Questiont   choicesR   c         C   s   |  j  S(   N(   R   (   R   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR	   †   s    c         C   s@   |  j  r8 g  |  j  j d ƒ D] } | j ƒ  ^ q } | St Sd  S(   Nt   ,(   t   optionst   splitt   stripR<   (   R   t   xRD   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_options‰   s    	+R=   c           B   s   e  Z d  d g Z RS(   t   paper_section__orderR   (   R   R   R>   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR=   ‘   s   (   u   selects   Selection (Choose One)(   u   multi-selects   Selection (Choose Multiple)(   u
   true-falses   True or False(    (   R   R   t   TYPE_OPTIONSR    R/   R   R   R?   R0   R   R   t   typeR;   t   requiredR   R   RD   t   answerR	   RH   R=   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR"   o   s   			t   PaperSubmissionc        	   B   sê   e  Z e j d  ƒ Z e j d ƒ Z e j d e d e ƒ Z e j	 d e
 ƒ Z e j d d ƒ Z e j d e ƒ Z e j d d d	 e d e d e ƒ Z d
 „  Z d d d „  ƒ  YZ d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   R   s   members.MemberR   R   R   i    t   auto_nowR   t   cetificatesR   c         C   s   d |  j  |  j f S(   Ns   %s - %s(   R   t   member(   R   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR	       s    R=   c           B   s   e  Z d  g Z RS(   s   -last_saved(   R   R   R>   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR=   £   s   c         C   s   t  j j d |  ƒ } | S(   Nt
   submission(   t   PaperQuestionSubmissionR   R   (   R   t   answers(    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_answers§   s    c         C   s   t  j j d |  d t ƒ } | S(   NRR   t   correct(   RS   R   R   R<   (   R   RT   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_incorrect_answers«   s    c         C   s7   |  j  ƒ  } g  } x | D] } | j | j ƒ q W| S(   N(   RW   t   appendR+   (   R   RT   R#   RM   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_incorrect_questions¯   s
    c         C   s=   d } |  j  ƒ  } x$ | D] } | j r | d } q q W| S(   Ni    i   (   RU   RV   (   R   t   countRT   RM   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt	   get_total·   s    	c         C   s4   |  j  j ƒ  } d } x | D] } | d } q W| S(   Ni    i   (   R   R$   (   R   R#   RZ   R+   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_max_scoreÀ   s
    c         C   sb   |  j  ƒ  d k rZ |  j ƒ  d k rZ t |  j  ƒ  ƒ } t |  j ƒ  ƒ } | | d } | Sd Sd  S(   Ni    id   (   R[   R\   t   float(   R   t   totalt	   max_scoret   percent(    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   get_percentageÉ   s    $(    (   R   R   R    R/   R   RQ   t   DateTimeFieldR   t	   submittedR;   R<   t   completeR   t   attemptt
   last_savedR4   R5   t   certificateR	   R=   RU   RW   RY   R[   R\   Ra   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyRN   •   s   $								RS   c           B   s‰   e  Z e j d  ƒ Z e j d d e d e d e j ƒZ e j ƒ  Z	 e j d e ƒ Z
 e j d e ƒ Z e j ƒ  Z d „  Z d „  Z RS(   RN   R"   R   R   t	   on_deleteR   c         C   s   d |  j  |  j f S(   Ns   %s - %s(   RR   R+   (   R   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyR	   à   s    c         C   sY   |  j  j d k rQ |  j rJ g  |  j j d ƒ D] } | j ƒ  ^ q. } | St Sn t Sd  S(   Ns   multi-selectRC   (   R+   RK   RM   RE   RF   R<   (   R   RG   RT   (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyRU   ã   s    	+(   R   R   R    R/   RR   R   t   SET_NULLR+   R0   t   question_nameRM   R;   R<   RV   R   R   R	   RU   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyRS   ×   s   $	N(   t	   django.dbR    t   django.confR   t   django.core.files.storageR   t   PRIVATE_FILESR5   t   ModelR   R   R   R"   RN   RS   (    (    (    s3   /var/www/svtgbi.org/svtgbi/modules/papers/models.pyt   <module>   s   =&B