ó
€ßtWc           @   s÷  d  d l  m Z m Z d  d l m Z m Z m Z d  d l m Z m	 Z	 d  d l
 m Z d  d l m Z d  d l m Z d  d l m Z m Z m Z d  d l m Z d  d	 l m Z m Z d  d
 l m Z d  d l m Z d  d l m Z m Z m Z d  d l  Z  d  d l! m" Z" d  d l# Td  d l$ Td  d l% Td  d l& Te	 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 „  ƒ Z0 e	 d ƒ d „  ƒ Z1 e	 d ƒ d „  ƒ Z2 e	 d ƒ d „  ƒ Z3 e	 d ƒ d „  ƒ Z4 e	 d ƒ d „  ƒ Z5 e	 d ƒ d  „  ƒ Z6 e	 d ƒ d! „  ƒ Z7 e	 d ƒ d" „  ƒ Z8 e	 d ƒ d# „  ƒ Z9 e	 d ƒ d$ „  ƒ Z: e	 d ƒ d% „  ƒ Z; d S(&   iÿÿÿÿ(   t   render_to_responset   get_object_or_404(   t   RequestContextt   loadert   Context(   t   login_requiredt   permission_required(   t   Q(   t   Site(   t   settings(   t   HttpResponseRedirectt   Http404t   HttpResponse(   t   reverse(   t   Usert   Group(   t   messages(   t   slugify(   t   datetimet   datet   timeN(   t   superuser_only(   t   *s    admin_users.can_access_electionsc         C   sc   t  j j d t ƒ j d ƒ } t  j j d t ƒ j d ƒ } t d i | d 6| d 6d t |  ƒ ƒS(   Nt   enabledt   names   admin/elections/elections.htmlt   enabled_electionst   disabled_electionst   context_instance(   t   Electiont   objectst   filtert   Truet   order_byt   FalseR    R   (   t   requestR   R   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt	   elections   s    c         C   s¶   t  ƒ  } |  j r– t  |  j ƒ } yX | j d t ƒ } t | j t d ƒ | _ | j ƒ  t j	 |  d ƒ t
 t d ƒ ƒ SWq– t j |  d ƒ q– Xn  t d i | d 6d t |  ƒ ƒS(	   Nt   committ   slugs   Election has been createdt   admin_electionss   Could not create elections!   admin/elections/add-election.htmlt   election_formR   (   t   ElectionFormt   POSTt   saveR!   t   slugify_uniqueR   R   R%   R   t   successR
   R   t   errorR    R   (   R"   R'   t   election(    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   add_election"   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 6d	 t |  ƒ ƒS(
   Nt   idt   instances   Election SavedR&   s   Could not update elections"   admin/elections/edit-election.htmlR.   R'   R   (   R   R   R(   R)   t   is_validR*   R   R,   R
   R   R-   R    R   (   R"   t   election_idR.   R'   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   edit_election8   s    	
c         C   s&  t  t d | ƒ} t d | ƒ } |  j rÿ t |  j ƒ } | j ƒ  rÿ yš | j d t ƒ } t | j t d ƒ | _	 | j ƒ  x? | j
 ƒ  D]1 } t d | j d | j d | ƒ } | j ƒ  q‰ Wt j |  d ƒ t t d	 ƒ ƒ SWqü t j |  d
 ƒ qü Xqÿ n  t d i | d 6| d 6d t |  ƒ ƒS(   NR0   R1   R$   R%   R   t   orderR.   s   Election DuplicatedR&   s   Could not duplicate elections'   admin/elections/duplicate-election.htmlR'   R   (   R   R   R(   R)   R2   R*   R!   R+   R   R%   t   get_positionst   ElectionPositionR5   R   R,   R
   R   R-   R    R   (   R"   R3   t   initial_electionR'   R.   t   initial_positiont   new_position(    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   duplicate_electionO   s"    	
!c         C   sZ   t  t d | ƒ} y | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t d ƒ ƒ S(   NR0   s   Election Deleteds   Could not delete electionR&   (   R   R   t   deleteR   R,   R-   R
   R   (   R"   R3   R.   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   delete_electionm   s    
c         C   sc   t  t d | ƒ} y' t | _ | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t	 d ƒ ƒ S(   NR0   s   Election Enableds   Could not enable electionR&   (
   R   R   R   R   R*   R   R,   R-   R
   R   (   R"   R3   R.   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   enable_election|   s    	
c         C   sc   t  t d | ƒ} y' t | _ | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t	 d ƒ ƒ S(   NR0   s   Election Disableds   Could not disable electionR&   (
   R   R   R!   R   R*   R   R,   R-   R
   R   (   R"   R3   R.   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   disable_election‹   s    	
c         C   sN   t  t d | ƒ} t j j d | ƒ } t d i | d 6| d 6d t |  ƒ ƒS(   NR0   R.   s'   admin/elections/election-positions.htmlt   election_positionsR   (   R   R   R7   R   R   R    R   (   R"   R3   R.   R@   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyR@   ›   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	 6d
 t |  ƒ ƒS(   NR0   R$   s   Election Position Createdt"   admin_elections_election_positionst   argss"   Could not create election positions*   admin/elections/add-election-position.htmlR.   t   election_position_formR   (   R   R   t   ElectionPositionFormR)   R2   R*   R!   R.   R   R,   R
   R   R0   R-   R    R   (   R"   R3   R.   RC   t   election_position(    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   add_election_position¤   s    			
 c         C   së   t  t d | ƒ} t  t d | 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
 6d t |  ƒ ƒS(   NR0   R.   R1   s   Election Position UpdatedRA   RB   s"   Could not update election positions+   admin/elections/edit-election-position.htmlRE   RC   R   (   R   R   R7   RD   R)   R2   R*   R   R,   R
   R   R0   R-   R    R   (   R"   R3   t   position_idR.   RE   RC   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   edit_election_position¾   s    	
 c         C   s~   t  t d | ƒ} t  t d | d | ƒ} y | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t d d | j	 g ƒƒ S(   NR0   R.   s   Election Position Deleteds"   Could not delete Election PositionRA   RB   (
   R   R   R7   R<   R   R,   R-   R
   R   R0   (   R"   R3   RG   R.   RE   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   delete_election_positionÕ   s    
c         C   s­   t  t d | ƒ} t j j d | ƒ j d ƒ } t j j d | d d ƒ j d ƒ } t j j d | d d ƒ j d ƒ } t d i | d 6| d	 6| d
 6| d 6d t |  ƒ ƒS(   NR0   R.   R5   t   statust   pendings   -createdt   rejecteds(   admin/elections/election-candidates.htmlR@   t   pending_candidatest   rejected_candidatesR   (	   R   R   R7   R   R   R    t   ElectionCandidateR    R   (   R"   R3   R.   R@   RM   RN   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   election_candidatesä   s
    $$c         C   s?  t  t d | ƒ} t j j d | ƒ j d ƒ } t ƒ  } | | j d _ |  j	 rt |  j	 ƒ } | j
 ƒ  r| j d t ƒ } | | _ | j j | _ | j j | _ | j j | _ | j j j | _ | j j | _ d | _ | j ƒ  t j |  d ƒ t t d d	 | j g ƒƒ Sn  t d
 i | d 6| d 6d t |  ƒ ƒS(   NR0   R.   R5   t   positionR$   t   approveds   Election Candidate Addedt#   admin_elections_election_candidatesRB   s"   admin/elections/add-candidate.htmlt   election_candidate_formR   (   R   R   R7   R   R   R    t   AddElectionCandidateFormt   fieldst   querysetR)   R2   R*   R!   R.   t   membert   titlet
   given_namet   surnamet   usert   emailt	   telephoneRJ   R   R,   R
   R   R0   R    R   (   R"   R3   R.   R@   RT   t   election_candidate(    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   add_election_candidateð   s&    				
c         C   sQ   t  t d | ƒ} t  t d | d | ƒ} t d i | d 6| d 6d t |  ƒ ƒS(   NR0   R.   s#   admin/elections/view-candidate.htmlR_   R   (   R   R   RO   R    R   (   R"   R3   t   candidate_idR.   R_   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   view_election_candidate  s    c         C   s!  t  t d | ƒ} t  t d | d | ƒ} t d | ƒ } t j j d | ƒ j d ƒ } | | j d _	 |  j
 ró t |  j
 |  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 6d t |  ƒ ƒS(   NR0   R.   R1   R5   RQ   s   Election Candidate SavedRS   RB   s   Could not update Candidates#   admin/elections/edit-candidate.htmlR_   RT   R   (   R   R   RO   t   UpdateElectionCandidateFormR7   R   R   R    RV   RW   R)   t   FILESR2   R*   R   R,   R
   R   R0   R-   R    R   (   R"   R3   Ra   R.   R_   RT   R@   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   edit_election_candidate  s    	 c         C   s‡   t  t d | ƒ} t  t d | d | ƒ} y' d | _ | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t	 d d | j
 g ƒƒ S(   NR0   R.   RR   s   Candidate Approveds   Could not Approve CandidateRS   RB   (   R   R   RO   RJ   R*   R   R,   R-   R
   R   R0   (   R"   R3   Ra   R.   t	   candidate(    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   approve_election_candidate6  s    	
c         C   s‡   t  t d | ƒ} t  t d | d | ƒ} y' d | _ | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t	 d d | j
 g ƒƒ S(   NR0   R.   RL   s   Candidate Rejecteds   Could not Reject CandidateRS   RB   (   R   R   RO   RJ   R*   R   R,   R-   R
   R   R0   (   R"   R3   Ra   R.   Rf   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   reject_election_candidateE  s    	
c         C   s~   t  t d | ƒ} t  t d | d | ƒ} y | j ƒ  t j |  d ƒ Wn t j |  d ƒ n Xt t d d | j	 g ƒƒ S(   NR0   R.   s   Candidate Deleteds   Could not Delete CandidateRS   RB   (
   R   R   RO   R<   R   R,   R-   R
   R   R0   (   R"   R3   Ra   R.   Rf   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   delete_election_candidateU  s    
c         C   so  t  t d | ƒ} t j j d | d d ƒ j d d ƒ } d d d	 d
 d d d d d d d d d d d g } t d d ƒ } d | d <t j | ƒ } | j	 | ƒ xÇ | D]¿ } | j
 rÀ d } n d } | j rØ d }	 n d }	 | j | j | j | j | j | j | j | j | j | j | j | j | | j |	 g }
 | j	 g  |
 D] } t | ƒ j d ƒ ^ qEƒ q¨ W| S(   NR0   R.   RJ   RR   t   position__ordert   createdt   Titles
   Given Namet   Surnames   Email Addresst	   Telephones   Position Applied Fort   Qualificationss   CCST Statuss   Current Posts   Hospital / Clinict	   Manifestos	   Sponsor 1s   Sponsor 1 Confirmeds	   Sponsor 2s   Sponsor 2 Confirmedt   content_types   text/csvs,   attachment; filename=election_candidates.csvs   Content-Dispositiont   Yest   Nos   utf-8(   R   R   RO   R   R   R    R   t   csvt   writert   writerowt   sponsor_confirmed_1t   sponsor_confirmed_2RY   RZ   R[   R]   R^   RQ   t   qualificationst   ccst_statust   current_postt   hospitalt	   manifestot   sponsor_email_1t   sponsor_email_2t   unicodet   encode(   R"   R3   R.   RP   RV   t   responseRu   Rf   t   confirmed_1t   confirmed_2t   submission_arrayt   s(    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   download_candidatesc  s"    '3
				Z3c         C   sW   t  t d | ƒ} t j j d | ƒ j d ƒ } t d i | d 6| d 6d t |  ƒ ƒS(   NR0   R.   R5   s#   admin/elections/election-votes.htmlR@   R   (   R   R   R7   R   R   R    R    R   (   R"   R3   R.   R@   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   election_votes„  s    c   
      C   sô   t  t d | ƒ} t j j d | d d ƒ j d d ƒ } d d d	 d
 d g } t d d ƒ } d | d <t j | ƒ } | j	 | ƒ xj | D]b } | j
 | j | j j j | j | j ƒ  g } | j	 g  | D] }	 t |	 ƒ j d ƒ ^ qÊ ƒ qŠ W| S(   NR0   R.   RJ   RR   Rj   Rk   s
   Given NameRm   s   Email Addresst   Positiont   VotesRq   s   text/csvs'   attachment; filename=election_votes.csvs   Content-Dispositions   utf-8(   R   R   RO   R   R   R    R   Rt   Ru   Rv   RZ   R[   RX   R\   R]   RQ   t   get_vote_countR€   R   (
   R"   R3   R.   RP   RV   R‚   Ru   Rf   R…   R†   (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   download_votes  s    '
-3(<   t   django.shortcutsR    R   t   django.templateR   R   R   t   django.contrib.auth.decoratorsR   R   t   django.db.modelsR   t   django.contrib.sites.modelsR   t   django.confR	   t   django.httpR
   R   R   t   django.core.urlresolversR   t   django.contrib.auth.modelsR   R   t   django.contribR   t   django.template.defaultfiltersR   R   R   R   Rt   t   modules.core.decoratorsR   t   modules.core.functionst   formst   modelst   modules.members.modelsR#   R/   R4   R;   R=   R>   R?   R@   RF   RH   RI   RP   R`   Rb   Re   Rg   Rh   Ri   R‡   Rˆ   RŒ   (    (    (    s:   /var/www/svtgbi.org/svtgbi/modules/elections/adminviews.pyt   <module>   sL   



	"	!	