
cc           @   s  d  d l  m Z m Z d  d l m Z m Z m Z d  d l m Z d  d l	 m
 Z
 d  d l m Z d  d l m Z d  d l Td  d l Td  d l Td  d l Td  d l m Z d  d	 l Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z e d
  d    Z  e d
  d    Z! e d
  d    Z" e d
  d    Z# e d
  d    Z$ e d
  d    Z% e d
  d    Z& e d
  d    Z' e d
  d    Z( e d
  d    Z) e d
  d    Z* e d
  d     Z+ e d
  d!    Z, e d
  d"    Z- e d
  d#    Z. d	 S($   i(   t   rendert   get_object_or_404(   t   HttpResponseRedirectt   Http404t   HttpResponse(   t   reverse(   t   messages(   t   slugify(   t   permission_required(   t   *(   t
   serve_fileNs(   admin_users.can_access_exam_applicationsc         C   sH   t  j j d t  } t  j j d t  } t |  d i | d 6| d 6 S(   Nt   enableds'   admin/exam_applications/exam-forms.htmlt   enabled_exam_formst   disabled_exam_forms(   t   ExamFormt   objectst   filtert   Truet   FalseR    (   t   requestR   R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt
   exam_forms   s    c         C   s   t    } |  j r t  |  j  } | j   r | j d t  } t | j t  | _ | j   t	 j
 |  d  t t d   Sn  t |  d i | d 6 S(   Nt   commits   Exam Form has been Createdt   admin_exam_formss*   admin/exam_applications/add-exam-form.htmlt   exam_form_form(   t   ExamFormFormt   POSTt   is_validt   saveR   t   slugify_uniquet   nameR   t   slugR   t   successR   R   R    (   R   R   t	   exam_form(    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   add_exam_form   s    		
c         C   s   t  t d | } t d |  } |  j r t |  j d | } | j   r y. | j   t j |  d  t t	 d   SWq t j
 |  d  q Xq n  t |  d i | d 6| d 6 S(	   Nt   idt   instances   Exam Form has been UpdatedR   s   Could not update Exam Forms*   admin/exam_applications/add-exam-form.htmlR    R   (   R   R   R   R   R   R   R   R   R   R   t   errorR    (   R   t   exam_idR    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   edit_exam_form4   s    	
c         C   sZ   t  t d | } y | j   t j |  d  Wn t j |  d  n Xt t d   S(   NR"   s   Exam form has been deleteds   Could not delete Exam FormR   (   R   R   t   deleteR   R   R$   R   R   (   R   R%   R    (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   delete_exam_formI   s    
c   	      C   sq  t  t d | } t d |  } |  j rSt |  j  } | j   rS| j d t  } t | j t  | _	 | j   x | j
   D] } t d | d | j d | j d | j d | j d	 | j  } | j   xZ | j   D]L } t d
 | j d | d | j d | j d | j d | j  } | j   q Wq Wt j |  d  t t d   Sn  t |  d i | d 6| d 6 S(   NR"   R#   R   R    t   titlet   subtitlet   ordert   minimum_scanst   upload_disabledR   t   categoryt   typet   minimumt   maximums   Exam Form has been DuplicatedR   s0   admin/exam_applications/duplicate-exam-form.htmlt   initial_exam_formR   (   R   R   R   R   R   R   R   R   R   R   t   get_modality_categoriest   ModalityCategoryR)   R*   R+   R,   R-   t	   get_itemst   ModalityItemR/   R0   R1   R   R   R   R   R    (	   R   R%   R2   R   R    t   mct   new_mct   mc_itemt   new_mi(    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   duplicate_exam_formW   s:    	
				
				c         C   sc   t  t d | } y' t | _ | j   t j |  d  Wn t j |  d  n Xt t	 d   S(   NR"   s   Exam form has been enableds   Could not enable Exam FormR   (
   R   R   R   R   R   R   R   R$   R   R   (   R   R%   R    (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   enable_exam_form   s    	
c         C   sc   t  t d | } y' t | _ | j   t j |  d  Wn t j |  d  n Xt t	 d   S(   NR"   s   Exam form has been disableds   Could not disable Exam FormR   (
   R   R   R   R   R   R   R   R$   R   R   (   R   R%   R    (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   disable_exam_form   s    	
c         C   sE   t  t d | } t j j d |  } t |  d i | d 6| d 6 S(   NR"   R    s2   admin/exam_applications/modalities/modalities.htmlt   modality_categories(   R   R   R4   R   R   R    (   R   R%   R    R>   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt
   modalities   s    c         C   s   t  t d | } t   } |  j r t |  j  } | j   r yU | j d t  } | | _ | j   t j	 |  d  t
 t d d | j g  SWq t j |  d  q Xq n  t |  d i | d 6| d	 6 S(
   NR"   R   s"   Modality Category has been Createdt   admin_exam_forms_modalitiest   argss"   Could not create Modality Categorys=   admin/exam_applications/modalities/add-modality-category.htmlR    t   modality_category_form(   R   R   t   ModalityCategoryFormR   R   R   R   R    R   R   R   R   R"   R$   R    (   R   R%   R    RB   t   modality_category(    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   add_modality_category   s    			
 c         C   s   t  t d | } t  t d | } t d |  } |  j r t |  j d | } | j   r y: | j   t j |  d  t	 t
 d d | j g  SWq t j |  d  q Xq n  t |  d i | d 6| d	 6| d
 6 S(   NR"   R#   s"   Modality Category has been updatedR@   RA   s"   Could not update Modality Categorys>   admin/exam_applications/modalities/edit-modality-category.htmlR    RD   RB   (   R   R   R4   RC   R   R   R   R   R   R   R   R"   R$   R    (   R   R%   t   modality_cat_idR    RD   RB   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   edit_modality_category   s    	
 c         C   sx   t  t d | } t  t d | } y | j   t j |  d  Wn t j |  d  n Xt t d d | j	 g  S(   NR"   s"   Modality Category has been deleteds"   Could not delete Modality CategoryR@   RA   (
   R   R   R4   R'   R   R   R$   R   R   R"   (   R   R%   RF   R    RD   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   delete_modality_category   s    
c         C   s   t  t d | } t   } t j j d |  } | | j d _ |  j r t |  j  } | | j d _ | j	   r yL | j
 d t  } | j
   t j |  d  t t d d | j g  SWq t j |  d  q Xq n  t |  d	 i | d 6| d
 6 S(   NR"   R    R.   R   s   Modality Item has been CreatedR@   RA   s   Could not create Modality Items9   admin/exam_applications/modalities/add-modality-item.htmlt   modality_item_form(   R   R   t   ModalityItemFormR4   R   R   t   fieldst   querysetR   R   R   R   R   R   R   R   R"   R$   R    (   R   R%   R    RI   R>   t   modality_item(    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   add_modality_item   s     		
 c         C   s#  t  t d | } t  t d | } t d |  } t j j d |  } | | j d _ |  j	 r t |  j	 d | } | | j d _ | j
   r yL | j d t  } | j   t j |  d  t t d d | j g  SWq t j |  d	  q Xq n  t |  d
 i | d 6| d 6| d 6 S(   NR"   R#   R    R.   R   s   Modality Item has been UpdatedR@   RA   s   Could not Update Modality Items9   admin/exam_applications/modalities/add-modality-item.htmlRI   RM   (   R   R   R6   RJ   R4   R   R   RK   RL   R   R   R   R   R   R   R   R   R"   R$   R    (   R   R%   t   modality_item_idR    RM   RI   R>   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   edit_modality_item   s"    	
 c         C   sx   t  t d | } t  t d | } y | j   t j |  d  Wn t j |  d  n Xt t d d | j	 g  S(   NR"   s   Modality Item has been deleteds   Could not delete Modality ItemR@   RA   (
   R   R   R6   R'   R   R   R$   R   R   R"   (   R   R%   RO   R    RM   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   delete_modality_item  s    
c         C   s   t  t d | } t j j d | d t d t  j d  } t j j d | d t d t  } t j j d | d t  } t |  d i | d 6| d 6| d	 6| d
 6 S(   NR"   t   examt   completet   paids   -completed_times2   admin/exam_applications/applicants/applicants.htmlR    t   complete_applicantst   unpaid_applicantst   incomplete_applicants(	   R   R   t   ExamApplicationR   R   R   t   order_byR   R    (   R   R%   R    RU   RV   RW   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   exam_applicants&  s    *!c      3   C   s@  t  t d | } t j j d | d t d t  } d d d d d	 d
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d d! g  } x% | j   D] } | j d# |  q Wx% | j   D] } | j d$ |  q Wx% | j   D] } | j d% |  q W| j d& k r x | j	   D] } | j d' |  x6 | j
   D]( } | j d( |  | j d) |  qQWx6 | j   D]( } | j d( |  | j d) |  qW| j d* |  q-W| d+ d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d1 d2 d3 d4 d5 d6 d7 d8 d: g 7} nO | d, d- d. d/ d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d1 d2 d3 d4 d5 d6 d7 d8 d: g 7} t d; d<  } d= | d> <t j |  }	 |	 j |  x| D]}
 |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j |
 j  |
 j! |
 j" |
 j# |
 j$ |
 j% |
 j& |
 j' |
 j( |
 j) |
 j* |
 j+ |
 j, |
 j- |
 j. |
 j/ |
 j0 |
 j1 |
 j2 |
 j3 |
 j4 |
 j5 |
 j6 |
 j7 |
 j8 |
 j9 |
 j: |
 j; |
 j< |
 j= |
 j> |
 j? |
 j@ |
 jA g2 } | j d& k rxV| j	   D]H} |
 jB |  } | r6| j | jC jD d?   n | j d@  xl | j
   D]^ } |
 jE |  } | r| jF r| j dA  n | j dB  n | j d@  | j d@  qPWxl | j   D]^ } |
 jE |  } | r| jF r| j dA  n | j dB  n | j d@  | j d@  qW| r:| j | jG  n | j d@  qW| |
 jH |
 jI dC |
 jJ |
 jK f |
 jL |
 jM g 7} n/ | |
 jI dC |
 jJ |
 jK f |
 jL |
 jM g 7} xT |
 jN   D]F } | | jO | jP | jQ | jR | jS | jT | jU | jV | jW g	 7} qW|	 j g  | D] } tX |  jY dD  ^ q qW| S(E   NR"   RR   RS   RT   t	   Submittedt   Titles
   First Namet   Surnames   Email Addresss   Contact Numbert   DOBs	   Job Titles   Current Employers   Employment Start Dates   Work Address 1s   Work Address 2s	   Work Towns   Work Countys   Work Postcodes   Work Countrys   Mailing Address 1s   Mailing Address 2s   Mailing Towns   Mailing Countys   Mailing Postcodes   Mailing Countrys   Modaility 1 Scanss   Modality 2 Scanss   Modality 3 Scanss   Undergraduate Universitys   Degree Titles   Degree Classs   Year Awardeds   Postgraduate Universitys
   Physics %ss   Vascular Tech %ss   CPD Points %ss   re-validations   %s Date Training Starteds	   %s Actuals   %s Eligibles   %s Total Eligible s   Three Years Experiences   Examiner Titles   Examiner Names   Examiner Emails   Examiner Unable Reasons   Reference 1 Names	   Address 1s	   Address 2t   Townt   Countyt   Postcodet   Countryt   Emailt	   Telephones   Reference 2 Names   Other Referencest   content_types   text/csvs(   attachment; filename=exam_applicants.csvs   Content-Dispositions   %m/%Yt    t   Yest   Nos   %s %ss   utf-8(Z   R   R   RX   R   R   R   t	   get_yearst   appendR/   R3   t   get_compulsory_itemst   get_optional_itemsR   t   csvt   writert   writerowt   completed_timeR)   t
   first_namet   surnamet   email_addresst   contact_numbert   dobt	   job_titlet   current_employert   employment_start_datet   work_address_1t   work_address_2t	   work_townt   work_countyt   work_postcodet   work_countryt   mailing_address_1t   mailing_address_2t   mailing_townt   mailing_countyt   mailing_postcodet   mailing_countryt   modality_1_scanst   modality_2_scanst   modality_3_scanst   university_namet   degree_titlet   degree_classt   year_awardedt   pg_university_namet   pg_degree_titlet   pg_year_awardedt   phi_y1t   phi_y2t   phi_y3t   phi_y4t   phi_y5t   phi_y6t   vt_y1t   vt_y2t   vt_y3t   vt_y4t   vt_y5t   vt_y6t   cpd_y1t   cpd_y2t   cpd_y3t   cpd_y4t   cpd_y5t   cpd_y6t   get_app_categoryt   training_begant   strftimet   get_app_itemRS   t   total_scanst   three_years_experiencet   examiner_titlet   examiner_first_namet   examiner_surnamet   examiner_emailt   examiner_unable_reasont   get_referencesR   t	   address_1t	   address_2t   townt   countyt   postcodet   countryt   emailt	   telephonet   unicodet   encode(   R   R%   R    RU   RK   t   yearRD   t   itemt   responseRn   t	   applicantt   sub_categoryt   sub_itemt	   referencet   s(    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   download_applicants6  sv    !fUO
 3		8/D3c         C   sB   t  t d | } t  t d | } t |  d i | d 6| d 6 S(   NR"   s8   admin/exam_applications/applicants/view-application.htmlR    t   application(   R   R   RX   R    (   R   R%   t   application_idR    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   view_application  s    c         C   sx   t  t d | } t  t d | } y | j   t j |  d  Wn t j |  d  n Xt t d d | j	 g  S(   NR"   s   Application has been deleted.s   Could not delete application.t   admin_exam_applicantsRA   (
   R   R   RX   R'   R   R   R$   R   R   R"   (   R   R%   R   R    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   delete_application  s    
c         C   sp   t  t d | } t  t d | } t | _ | j   t |  |  t j |  d  t	 t
 d d | j g  S(   NR"   s#   Application has been marked as paidR   RA   (   R   R   RX   R   RT   R   t   application_form_paidR   R   R   R   R"   (   R   R%   R   R    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   mark_paid_application  s    	
c         C   so   t  t d | } t  t d | } | j rC t |  | j d t St j |  d  t t	 d d | | g  S(   NR"   t   save_ass9   Sorry this application does not have a Degree Certificatet   admin_exam_view_applicationRA   (
   R   R   RX   t   degree_certificateR
   R   R   R$   R   R   (   R   R%   R   R    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   download_degree_certificate  s    	c         C   so   t  t d | } t  t d | } | j rC t |  | j d t St j |  d  t t	 d d | | g  S(   NR"   R   s8   Sorry this application does not have Non Degree EvidenceR   RA   (
   R   R   RX   t   non_degree_evidenceR
   R   R   R$   R   R   (   R   R%   R   R    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   download_non_degree_evidence  s    	c         C   so   t  t d | } t  t d | } | j rC t |  | j d t St j |  d  t t	 d d | | g  S(   NR"   R   s;   Sorry this application does not have an Exam Results LetterR   RA   (
   R   R   RX   t   exam_results_letterR
   R   R   R$   R   R   (   R   R%   R   R    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   download_results_letter  s    	c         C   so   t  t d | } t  t d | } | j rC t |  | j d t St j |  d  t t	 d d | | g  S(   NR"   R   s7   Sorry this application does not have a Reference UploadR   RA   (
   R   R   RX   t   reference_uploadR
   R   R   R$   R   R   (   R   R%   R   R    R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   download_references  s    	c         C   s   t  t d | } t  t d | } t  t d | } | j rU t |  | j d t St j |  d  t	 t
 d d | | g  S(   NR"   R   sD   Sorry this application does not have an Scans file for this ModalityR   RA   (   R   R   RX   t   ExamApplicationModalityCategoryt
   scans_fileR
   R   R   R$   R   R   (   R   R%   R   t   subcategory_idR    R   R   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   admin_exam_download_scans_file  s    	c         C   s   t  t d | } t  t d | } t j j d |  } x! | D] } d | _ | j   q@ Wt j	 |  d  t
 t d d | | g  S(   NR"   t   exam_applicationRf   s   Scan Files ClearedR   RA   (   R   R   RX   R   R   R   R   R   R   R   R   R   (   R   R%   R   R    R   t   subcategoriesR   (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   clear_files  s    	(/   t   django.shortcutsR    R   t   django.httpR   R   R   t   django.core.urlresolversR   t   django.contribR   t   django.template.defaultfiltersR   t   django.contrib.auth.decoratorsR   t   modules.core.functionst   formst   modelst   emailst   filetransfers.apiR
   Rm   R   R!   R&   R(   R;   R<   R=   R?   RE   RG   RH   RN   RP   RQ   RZ   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   /var/www/svtgbi.org/svtgbi/modules/exam_application/adminviews.pyt   <module>   sH   



+	V