
!fc           @   sB  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 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 m Z d  d l m Z m Z d  d l m Z d  d l  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' d  d l  m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- d  d l. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 d  d l. m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< d  d l= m> Z> d  d l? m@ Z@ d  d lA ZA d  d lB ZB d  d lC ZC d  d lD mE ZE d  d lF mG ZG mH ZH d  d lI mJ ZJ d  d lK mL ZL mM ZM e	 d  d    ZN e	 d  d    ZO e	 d  d    ZP eE d    ZQ e	 d  d    ZR e	 d  d     ZS e	 d  d!    ZT e	 d  d"    ZU e	 d  d#    ZV e	 d  d$    ZW e	 d  d%    ZX e	 d  d&    ZY e	 d  d'    ZZ 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.    Za e	 d  d/    Zb e	 d  d0    Zc e	 d  d1    Zd e	 d  d2    Ze e	 d  d3    Zf e	 d  d4    Zg e	 d  d5    Zh e	 d  d6    Zi e	 d  d7    Zj e	 d  d8    Zk e	 d  d9    Zl e	 d  d:    Zm e	 d  d;    Zn e	 d  d<    Zo e	 d  d=    Zp e	 d  d>    Zq e	 d  d?    Zr e	 d  d@    Zs e	 d  dA    Zt e	 d  dB    Zu e	 d  dC    Zv e	 d  dD    Zw e	 d  dE    Zx e	 d  dF    Zy e	 d  dG    Zz e	 d  dH    Z{ e	 d  dI    Z| e	 d  dJ    Z} e	 d  dK    Z~ e	 d  dL    Z e	 d  dM    Z e	 d  dN    Z e	 d  dO    Z e	 d  dP    Z e	 d  dQ    Z e	 d  dR    Z e	 d  dS    Z e	 d  dT    Z e	 d  dU    Z e	 d  dV    Z d S(W   i(   t   render_to_responset   get_object_or_404t   render(   t   render_to_string(   t   RequestContext(   t   permission_required(   t   Q(   t   settings(   t   HttpResponseRedirectt   Http404t   HttpResponse(   t   reverse(   t   User(   t   EmailMessage(   t   messages(   t   relativedelta(   t   datetimet   date(   t
   serve_file(   t   MemberContactFormt   MemberDocumentFormt   MemberAddSubscriptionFormt   MemberEditSubscriptionFormt   AreaOfInterestFormt   MemberGroupFormt   MemberTypeForm(   t   AdminMemberUserFormt   AdminAddMemberPasswordFormt   AdminMemberPasswordFormt   AdminAddMemberFormt   AdminMemberFormt   AdminMemberInvoiceForm(   t   Membert   AreaOfInterestt
   MemberTypet   MemberDirectDebitt   Certificatet   MemberSubscriptiont   MemberContact(   t   UserActivityt   MemberRenewalInvoicet   MemberGroupt   MemberDocumentt   Receiptt   MemberRenewalt   ProfessionalChoice(   t   MeetingBooking(   t   PaymentN(   t
   staff_only(   t   random_string_uniquet   generate_random_password(   t   renewal_confirmation(   t   export_memberst   get_next_membership_numbers   admin_users.can_access_membersc         C   sP  t  t t d d   } t   } g  } x3 | D]+ } | j |  } | r. | j |  q. q. Wt j j   j	 d  } t
 j j   j	 d  } t j j d t d d d d  j	 d	  } t j j d t d d d d  j	 d	  d
  }	 t j j d t d d d d  j	 d  }
 t |  d i | d 6| d 6| d 6|	 d 6|
 d 6| d 6| d 6 S(   Nia   i{   t   namet   approvedt   member_statust   currentt	   user_typet   members   -user__date_joinedi
   t	   suspendedt   surnames   admin/members/members.htmlt   letterst   final_letterst   all_memberst   latest_memberst   suspended_memberst   member_typest   areas_of_interest(   t   mapt   chrt   rangeR    t   get_letter_activet   appendR"   t   objectst   allt   order_byR!   t   filtert   TrueR   (   t   requestR>   R;   R?   t   lettert   statusRC   RD   R@   RA   RB   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_members)   s    	*.*#c         C   s   t  j j d d  } x | D] } t j d d  } | j d d d d  t t j j	 t
 j d | j  d	  } t d
 i | d 6d t |   } | j | |  | j   d | j | _ | j   q Wt d  S(   Nt   id__gtei|  t   calmdigitalt    dc33e7c4525620565185d0a00d90b8f0t   30t   50t   0s2   members/certificates/membership_certificate_%s.pdft   wbs'   members/certificates/view-cert-pdf.htmlt   certificatet   context_instancet   Ok(   R$   RJ   RM   t   pdfcrowdt   Clientt   setPageMarginst   opent   ost   patht   joinR   t
   MEDIA_ROOTt   idR   R   t   convertHtmlt   closet   filet   saveR
   (   RO   t   certificatesRZ   t   clientt   output_filet   html(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   update_certificatesB   s    ("
c         C   s
   t  d  S(   NR\   (   R
   (   RO   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   import_membersT   s    c      
   C   s<  t  j j d d d d d t  } x| D]} t d  } | j j |  t | j _ | j j   | | _	 t | _
 | j   t d | d d d	 d
 t d  d d  } | j   d |  j d |  j d | j j | f } t d t j | d | j j g  } d | _ y | j   Wq( t k
 r-q( Xq( Wt d  S(   NR:   R;   R8   R9   t   requires_password_reseti
   t   titles   Please reset your passwordt   textsn   You are currently using a temporary password, please <a href="%s">Change it to something you will remember</a>t   change_passwordt   types   account-notifications
  
<p><img alt="" src="https://www.svtgbi.org.uk/static/images/logo.png" /></p>

<p>Dear Member,</p>

<p>As you may already know, The <strong style="color:#3B56A2;">SVT</strong> has launched its new website.</p>

<p>The primary reason behind this development is to increase the member benefits, automate administrative functions and decrease costs.
We have implemented a new log-in process and have tried to make this as simple as possible. It uses your email address registered with SVT,
as the user name which we hope will be easier to remember than a membership number.</p>

<p>In order to get immediate access to all the features of the new site we would ask you to follow the steps below:</p>

<ol>
    <li>Click the link at the end of this email; this will take you to the new site.</li>
    <li>When directed, use the temporary password and then change it to something you'll find easier to remember for future use.</li>
    <li>You will then be taken to your personal membership registration information page and should see all your current details, please complete any missing information (most fields are compulsory
    to ensure that we have the correct information and that can you access to the latest features of the site). Once complete, submit the information and you're done.</li>
</ol>

<p>Taking the time to confirm and complete all your account details for the new site will ensure you can access the new locker system, <strong style="color:#3B56A2;">My Locker</strong>,
which will contain any communications from the Society, enable you to store items such as certificates, receipts, booking info etc.</p>

<p>You will now be able to navigate to all areas of the site.</p>

<p><strong style="color:#3B56A2;">Your own SVT Locker:</strong><br/>
Upon successful completion of the form by providing all the details, you can begin accessing your Locker which will contain:</p>

<ul>
    <li>Any communications from the Society</li>
    <li>Store your CPD points and certificates</li>
    <li>Access membership details</li>
    <li>View your event booking history and receipts</li>
    <li>Change your password</li>
</ul>

<p>Please complete your re registration within 7 days as this will help us implement any advanced features for you.</p>

<p>We hope you will enjoy the new site and as it develops we&#39;re sure it will become a significant source of information about the Society and Vascular Technology.
If you do see any inaccuracies or broken links you can report these to the SVT using the contact us form available on every page.</p>

<p>Kind regards</p>
<p>The Society for Vascular Technology </p>


<h2 style="color:#3B56A2;">Your Login Details</h2>

<p>Link: <a href="https://%s/login">https://%s/login</a><br/>
Email Address: %s<br/>
Temporary password: %s</p>

t	   HTTP_HOSTs   %s Website Member Registrations   membership@svtgbi.org.ukRm   R\   (   R    RJ   RM   RN   R2   t   usert   set_passwordt   activeRi   t   raw_passwordt   temp_passwordR'   R   t   METAt   emailR   R   t   WEBSITE_CODEt   content_subtypet   sendt	   ExceptionR
   (   RO   t   membersR;   t   generated_passwordt   reset_password_notificationt   messaget   msg(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   send_passwords   s.    !		
	
5*%	c         C   s   t  j j   } x | D] } t j j d |  j d  } | r | d j } t | j | j	 | j
 d d d  } | | j _ | j j   | | _ | j   | j d k r | j   } | d j } | | _ | j   q q q Wt d  S(   NR;   t
   start_datei    i   R\   (   R    RJ   RK   R%   RM   RL   R   R   t   yeart   montht   dayRv   t   date_joinedRi   t
   registeredR:   R   t   expiry_dateR
   (   RO   R   R;   t   member_subscriptionsR   t   start_date_timet   reversed_subscriptionsR   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   sort_subscriptionsO  s     $	
	c         C   s[   t  d d d  } t j j d d d |  } x! | D] } d | _ | j   q4 Wt d  S(	   Ni  i   i   R:   R;   t   expiry_date__ltet   archivedR\   (   R   R    RJ   RM   R8   Ri   R
   (   RO   t   december_2013t   expired_membersR;   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   sort_expiredi  s    	c         C   s=   t  j j d t d d d d  j d  } t |  |  } | S(   NR7   R8   R9   R:   R;   R=   (   R    RJ   RM   RN   RL   R4   (   RO   R   t   response(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   download_membersv  s    *c         C   s   t  t t d d   } t j j d d d t d d  j d  } t j j	   j d	  } t
 |  d
 i | d 6| d 6| d 6 S(   Nia   i{   R:   R;   R7   R8   R9   t   user__last_nameR6   s   admin/members/all_members.htmlR>   R   RC   (   RE   RF   RG   R    RJ   RM   RN   RL   R"   RK   R   (   RO   R>   R   RC   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyR@     s    *c   
   	   C   s   t  t t d d   } t   } g  } x3 | D]+ } | j |  } | r. | j |  q. q. Wt j j   j	 d  } t
 j j   j	 d  } t j j d | d d d t d d	  j	 d
  }	 t |  d i | d 6| d 6| d 6| d 6|	 d 6| d 6 S(   Nia   i{   R6   t   surname__istartswithR:   R;   R7   R8   R9   R=   s$   admin/members/member_list_alpha.htmlR>   R?   RC   RD   R   RP   (   RE   RF   RG   R    RH   RI   R"   RJ   RK   RL   R!   RM   RN   R   (
   RO   RP   R>   R;   R?   t   prim_letterRQ   RC   RD   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   alpha_members  s    	0c      	   C   s	  t  t t d d   } t   } g  } x3 | D]+ } | j |  } | r. | j |  q. q. Wt j j   j	 d  } t
 j j   j	 d  } t t d | }	 t j j d |	 d d d t d	 d
  j	 d  }
 t |  d i | d 6| d 6| d 6| d 6|	 d 6|
 d 6 S(   Nia   i{   R6   Re   t   member_typeR:   R;   R7   R8   R9   R   s#   admin/members/member_list_type.htmlR>   R?   RC   RD   R   (   RE   RF   RG   R    RH   RI   R"   RJ   RK   RL   R!   R   RM   RN   R   (   RO   Re   R>   R;   R?   RP   RQ   RC   RD   R   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_list_type  s    	0c      	   C   sU   t  t d | } t j j d | d d d t d d  j d  } t |  |  } | S(	   NRe   R   R:   R;   R7   R8   R9   R   (   R   R"   R    RJ   RM   RN   RL   R4   (   RO   Re   R   R   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_list_type_download  s    0c      	   C   s	  t  t t d d   } t   } g  } x3 | D]+ } | j |  } | r. | j |  q. q. Wt j j   j	 d  } t
 j j   j	 d  } t t
 d | }	 t j j d |	 d d d t d	 d
  j	 d  }
 t |  d i | d 6| d 6| d 6| d 6|	 d 6|
 d 6 S(   Nia   i{   R6   Re   t   special_interest_groupsR:   R;   R7   R8   R9   R   s"   admin/members/member_list_sig.htmlR>   R?   RC   RD   t   area_of_interestR   (   RE   RF   RG   R    RH   RI   R"   RJ   RK   RL   R!   R   RM   RN   R   (   RO   Re   R>   R;   R?   RP   RQ   RC   RD   R   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_list_area  s    	0c   
       C   s  t  t d | } t j j d | d d d t d d  j d  } t d	 d
  } d | d <t j	 |  } | j
 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*| D]"} d* } x* | j j   D] } d+ | | j f } q W| j
 g  | 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+   f D] }	 t, |	  j- d,  ^ q q W| S(-   NRe   R   R:   R;   R7   R8   R9   R   t   content_types   text/csvs    attachment; filename=members.csvs   Content-Dispositions   Membership Numbert   Titles
   Given Namet   Surnames   Email Addresst   Typet
   Registeredt   Qualificationst   Genders	   Address 1s	   Address 2t   Townt   Countyt   Countryt   Postcodet	   Telephones   Personal Emails	   Job Titlet   Hospitals   Hospital Departments   Hospital Address 1s   Hospital Address 2s   Hospital Towns   Hospital Countys   Hospital Countrys   Hospital Postcodes   Hospital Telephones   Hospital Email Addresss   Preferred Mailing Addresst    s   %s%s, s   utf-8(.   R   R!   R    RJ   RM   RN   RL   R
   t   csvt   writert   writerowRD   RK   R6   t   membership_numberRq   t
   given_nameR=   Rv   R|   R   R   t   qualificationst   get_gender_displayt	   address_1t	   address_2t   townt   countyt   countryt   postcodet	   telephonet   personal_emailt	   job_titlet   hospitalt   hospital_departmentt   hospital_address_1t   hospital_address_2t   hospital_townt   hospital_countyt   hospital_countryt   hospital_postcodet   hospital_phonet   hospital_emailt%   get_preferred_mailing_address_displayt   unicodet   encode(
   RO   Re   t   areaR   R   R   R;   RD   R   t   s(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_list_area_download  s&    0
*	69*Kc         C   s   |  j  r |  j  j d  r y[ t j j t d d  t d d d t  Bd |  j  d } t t d d | j g  SWq t	 k
 r t
 j |  d  t t d	   SXq n t
 j |  d
  t t d	   S(   NR   R:   s
   non-memberR;   R7   t   view_membert   argss&   Member with that number was not found.RR   s   Could not load member(   t   POSTt   getR    RJ   R   RN   R   R   Re   R   R   t   error(   RO   R;   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   load_member  s    	; c   
      C   s  t  t t d d   } t   } g  } x3 | D]+ } | j |  } | r. | j |  q. q. Wt j j   j	 d  } t
 j j   j	 d  } |  j r`|  j j d  rM|  j d } t j j t d |  j d  t d |  j d  Bt d d  t d d	 d
 t  B j	 d  }	 t |  d i | d 6| d 6| d 6| d 6| d 6|	 d 6 St j |  d  n t j |  d  t t d   S(   Nia   i{   R6   t   member_namet   given_name__icontainst   surname__icontainsR:   s
   non-memberR;   R7   R=   s   admin/members/search-name.htmlR>   R?   RC   RD   R   s   Could not search for membersRR   (   RE   RF   RG   R    RH   RI   R"   RJ   RK   RL   R!   R   R   RM   R   RN   R   R   R   R   R   (
   RO   R>   R;   R?   RP   RQ   RC   RD   R   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   search_name  s(    			L	.c         C   s>   t  j j d t  j d  } t d i | d 6d t |   S(   Nt   paids   -createds#   admin/members/renewal/renewals.htmlt   renewalsR[   (   R,   RJ   RM   t   FalseRL   R    R   (   RO   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   renewal-  s    c         C   s  t  t d | d t } | j } | j } | j } | t d d 
 } | t d d 
d d  } | | _ | j   d | j | j	 d	  f } t
 d
 | d | d | d | j d d d | j d | d d d | d | d t j    }	 |	 j   d t j | j	 d	  f }
 t d
 | d |
 d | d | j d | j d |	  } | j   y t j d d  } | j d d d d  | j d t j   j	 d    t t j j t j d! | j  d"  } t d# i | d$ 6 } | j | |  | j   Wn t k
 rn Xd! | j | _  | j   t! d
 | d |	 j" d% |	 j  } | j   y t j d d  } | j d& d d d  t t j j t j d' | j  d"  } t d( i | d) 6d* t# |   } | j | |  | j   Wn t k
 rn Xd' | j | _  | j   t$ j% d+ d  d
 | d |	 d, d- d$ | d) | d. t  t' d
 | d/ d0 d1 d2 d3 d4 t( d5   } | j   t) | _* | j   t+ j, |  d6  t- t( d7   S(8   NRe   R   t   daysi   t   monthsi   is   %s Membership Subscription (%s)s   %B %YR;   R   t   subscriptiont   amountt   discounti    t   totalt
   invoice_toRQ   R9   R   R   t   invoice_createdR6   t   amount_paidt   payment_typet   member_subscriptionRT   RU   RW   RX   su   <p style="font-size:12px; text-align:center;">The Society for Vascular Technology of Great Britain and Ireland %s</p>s   %d/%m/%Ys*   members/receipts/membership_renewal_%s.pdfRY   s&   members/receipts/view-receipt-pdf.htmlt   receiptt   end_dateRV   s2   members/certificates/membership_certificate_%s.pdfs'   members/certificates/view-cert-pdf.htmlRZ   R[   t   sendert   methodt   Invoicet   notify_adminRt   s   account-notificationRq   s   Membership RenewedRr   sk   Your membership has been successfully renewed.<br/>Visit <a href="%s">My Receipts</a> to view your receipt.t   my_receiptss9   Invoice has been marked as paid, Member has been notifiedt   admin_members_renewal(.   R   R,   R   R;   R   R   R   Ri   R6   t   strftimeR%   t   renewal_feeR   t   todayR   t   WEBSITE_NAMER+   t   payment_methodR]   R^   R_   t   setFooterHtmlR`   Ra   Rb   Rc   Rd   Re   R   Rf   Rg   R   Rh   R$   R   R   R3   R   t   NoneR'   R   RN   R   R   t   successR   (   RO   Re   R   R;   R   t   current_expiryR   R   t   subscription_nameR   t   receipt_nameR   Rk   Rl   Rm   RZ   t   notification(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   mark_paid_renewal5  sv    				
		
3
 (
!
("
4
	
c         C   s<   t  t d | } | j   t j |  d  t t d   S(   NRe   s   Renewal Request DeletedR   (   R   R,   t   deleteR   R   R   R   (   RO   Re   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_renewal  s    
c         C   s>   t  j j d t  j d  } t d i | d 6d t |   S(   NR   s   -createds$   admin/members/invoices/invoices.htmlt   pending_invoicesR[   (   R(   RJ   RM   R   RL   R    R   (   RO   R  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   renewal_invoices  s    c         C   s'   t  j j d t  j d  } | GHd  S(   NR   s   -created(   R(   RJ   RM   R   RL   (   RO   R  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   download_renewal_invoices  s    c         C   s)   t  t d | } t |  d i | d 6 S(   NRe   s(   admin/members/invoices/view-invoice.htmlt   invoice(   R   R(   R   (   RO   Re   R  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   view_renewal_invoice  s    c         C   s  t  t d | d t } | j } | j } | j } | t d d 
 } | j d k rs | t d d 
d d  } nF | j d	 k r | t d d
 
d d  } n | t d d 
d d  } | | _ | j   d | j	 | j
 d  f } t d | d | d | d | j d d d | j d | j d d d | d | d t j    }	 |	 j   d t j | j
 d  f }
 t d | d |
 d | d | j d d d |	  } | j   y t j d  d!  } | j d" d" d# d"  | j d$ t j   j
 d%   t t j j t j d& | j  d'  } t d( i | d) 6 } | j | |  | j   Wn t  k
 rYn Xd& | j | _! | j   t" d | d |	 j# d* |	 j  } | j   y t j d  d!  } | j d" d" d# d"  t t j j t j d+ | j  d'  } t d, i | d- 6d. t$ |   } | j | |  | j   Wn t  k
 rBn Xd+ | j | _! | j   t% j& d/ d  d | d |	 d0 d d) | d- | d1 t  t( d | d2 d3 d4 d5 d6 d7 t) d8   } | j   t* | _+ | j   t, j- |  d9  t. t) d:   S(;   NRe   R   R   i   s   3-monthsR   i   is   6-monthsi   i   s   %s Membership Subscription (%s)s   %B %YR;   R   R   R   R   i    R   R   RQ   R9   R   R   R   R6   R   R   R   R   RT   RU   RW   RX   su   <p style="font-size:12px; text-align:center;">The Society for Vascular Technology of Great Britain and Ireland %s</p>s   %d/%m/%Ys*   members/receipts/membership_renewal_%s.pdfRY   s&   members/receipts/view-receipt-pdf.htmlR   R   s2   members/certificates/membership_certificate_%s.pdfs'   members/certificates/view-cert-pdf.htmlRZ   R[   R   R   R   Rt   s   account-notificationRq   s   Membership RenewedRr   sk   Your membership has been successfully renewed.<br/>Visit <a href="%s">My Receipts</a> to view your receipt.R   s9   Invoice has been marked as paid, Member has been notifiedt   admin_members_renewal_invoices(/   R   R(   R   R;   R   R   R   t   subscription_lengthRi   R6   R   R%   R   t   organisation_nameR   R   R   R   R+   R]   R^   R_   R   R`   Ra   Rb   Rc   Rd   Re   R   Rf   Rg   R   Rh   R$   R   R   R3   R   R   R'   R   RN   R   R   R   R   (   RO   Re   R  R;   R   R   R   R   R   R   R   R   Rk   Rl   Rm   RZ   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   mark_paid_invoice  s~    				
			
0
 (
!
("
4
	
c         C   sd   t  t d | } y | j   t j |  d  Wn! t k
 rS t j |  d  n Xt t d   S(   NRe   s   Invoice Deleteds   Could not delete invoiceR  (	   R   R(   R   R   R   R   R   R   R   (   RO   Re   R  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_renewal_invoice  s    
c   
   	   C   s  t    } t   } t   } t j j   | j d _ t   } |  j	 rt  |  j	  } t |  j	  } t |  j	  } t j j   | j d _ t |  j	  } y t
 j j d |  j	 d  } | j d k r d } t d d | j g } n$ t d d | j g } | j   } t j |  d	 | | f  Wn t
 j k
 r?n X| j   r| j   r| j   r| j   ry| j d
 t  } | j |  j	 d  t d t d  | _ | j   | j d
 t  } | | _ t | _ t | _ t | _ d | _ t    | _! | j   t |  j	 d | } | j" r:| j" | _# n  | j$ rR| j$ | _% n  | j   t j& |  d  t' t d   SWqt( k
 r}	 t j |  d |	  qXqt j |  d  n  t) |  d i | d 6| d 6| d 6| d 6 S(   Nt   professional_certificationt   user__emailR|   t   delegates
   A Delegatet   admin_members_view_delegateR   R   sF   Email Address already exists, user is %s <a href="%s">View Profile</a>t   committ	   password1i   t   usernameR9   t   instances   Member CreatedRR   s   Could not add Member %ssU   Could not save the details, please ensure all the fields have been entered correctly.s   admin/members/add_member.htmlt   member_user_formt   member_password_formt   member_formt   invoice_form(*   R   R   R   R-   RJ   RK   t   fieldst   querysetR   R   R    R   R   R   Re   t   get_member_status_displayR   R   t   DoesNotExistt   is_validRi   R   Rw   R1   R   R  Rv   RN   R7   t   completeR   R8   R5   R   R   t
   first_nameR=   t	   last_nameR   R   R   R   (
   RO   R  R  R  R  R;   R   t
   member_urlRv   t   e(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_add_member  s`    					0
					
		
c   	      C   s  t  t d | } t j j d |  j d d  j d  } t j j d |  } t j j d | d t	  j d  d  } t
 j j d |  j d	  d  } t j j d |  j d
  d  } t j j d |  j d  } t |  d i | d 6| d 6| d 6| d 6| d 6| d 6| d 6 S(   NRe   R;   RQ   t   pendings   -createdR  s   -timei   s   -expiry_dates   -contact_dates   admin/members/view-member.htmlt   paymentss    member_direct_debitst   meeting_bookingsR   t   member_contactst   member_documents(   R   R    R/   RJ   RM   t   excludeRL   R#   R.   RN   R%   R&   R*   R   (	   RO   Re   R;   R#  t   member_direct_debitsR$  R   R%  R&  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_view_memberW  s    *(""c         C   s   t  t d | } | j rz t   } d | d <d | d <d | j   | d <| j t t j d | j j	  j
    | St  d  S(	   NRe   s   no-caches   Cache-Controlt   nones   Accept-Rangess   attachment; filename=%ss   Content-Dispositiont   /(   R   R    t   referrer_letterR
   t   get_referrer_letter_filenamet   writeR`   R   t   PRIVATE_FILESR6   t   readR	   (   RO   Re   R;   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   download_referrer_letteri  s    		

*c   
      C   s[  t  t d | } t d | j  } t   } t d |  } t d |  } | j j } |  j r(t |  j d | j } t |  j  } t |  j |  j	 d | } t |  j d | } | j
   r| j
   r| j
   rt } t }	 |  j j d  r| j
   st } n  |  j d }	 n  | s%| j   |	 r[| j j |  j d  | j j   n  | j   | j r| j | j _ n  | j r| j | j _ n  | j j   | j r| | j j k rt | _ | j   qn  | j   t j |  d  t t d d | j g  Sq(t j |  d  n  t |  d i | d	 6| d
 6| d 6| d 6| d 6 S(   NRe   R  R  s   Member UpdatedR   R   sU   Could not save the details, please ensure all the fields have been entered correctly.s   admin/members/edit_member.htmlR;   R  R  R  R  (   R   R    R   Rv   R   R   R   R|   R   t   FILESR  R   R   RN   Ri   Rw   R   R  R=   R  t
   temp_emailR   R   R   R   Re   R   R   (
   RO   Re   R;   R  R  R  R  t   initial_emailt   password_errort   new_password(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_edit_memberx  sN    		$	

				
c         C   s?   t  t d | } | j j   t j |  d  t t d   S(   NRe   s   Member has been deletedRR   (   R   R    Rv   R   R   R   R   R   (   RO   Re   R;   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_delete_member  s    c         C   sQ   t  t d | } d | _ | j   t j |  d  t t d d | j g  S(   NRe   R9   s   Member has been Re-ActivatedR   R   (	   R   R    R8   Ri   R   R   R   R   Re   (   RO   Re   R;   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_activate_member  s
    	
c         C   sE   t  t d | } d | _ | j   t j |  d  t t d   S(   NRe   R   s   Member ArchivedRR   (   R   R    R8   Ri   R   R   R   R   (   RO   Re   R;   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_archive_member  s
    	
c         C   sE   t  t d | } d | _ | j   t j |  d  t t d   S(   NRe   R<   s   Member Marked as Suspendedt   admin_members_lapsed_members(   R   R    R8   Ri   R   R   R   R   (   RO   Re   R;   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_suspend_member  s
    	
c         C   s  t  t d | } t j   } | d k rr | j d k r_ d | _ | j   t j |  d  qt j |  d  nk| d k r | j d k r d | _ | | _	 | j   t j |  d  qt j |  d  n| d k r#| j d k rd | _ | j   t j |  d	  qt j |  d
  n | d k rw| j d k rdd | _ | j   t j |  d  qt j |  d  nf | d k r| j d k rd | _ t
 | _ t | _ | j   t j |  d  qn t j |  d  t t d d | j g  S(   NRe   R9   s*   Status Updated to <strong>Current</strong>s   Member is Already Currentt   lapseds)   Status Updated to <strong>Lapsed</strong>s   Member is Already LapsedR<   s,   Status Updated to <strong>Suspended</strong>s   Member is Already SuspendedR   s+   Status Updated to <strong>Archived</strong>s   Member is Already ArchivedR"  s*   Status Updated to <strong>Pending</strong>s   Could not change members statusR   R   (   R   R    R   R   R8   Ri   R   R   t   warningt   lapsed_dateR   R7   RN   R  R   R   R   Re   (   RO   Re   RQ   R;   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   change_status  sH    	
		
	
	
			
c         C   sN   t  t d | } t j j d |  j d  } t |  d i | d 6| d 6 S(   NRe   R;   s   -expiry_dates2   admin/members/subscriptions/all-subscriptions.htmlR   (   R   R    R%   RJ   RM   RL   R   (   RO   Re   R;   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyR     s    c         C   s  t  t d | } t   } |  j rt |  j  } | j   r| j d t  } | | _ | j   | j rB| j	 | _	 | j   d t
 j | j j d  f } t d | d | d | j d | j d	 | j d
 |  } | j   y t j d d  } | j d d d d  | j d t j   j d   t t j j t
 j d | j  d  } t d i | d 6 }	 | j |	 |  | j d t j   j d   | j   Wn t  k
 rn Xd | j | _! | j   t" d | d | j d | j	  }
 |
 j   y t j d d  } | j d d d d  t t j j t
 j d |
 j  d  } t d i |
 d 6d t# |   }	 | j |	 |  | j   d |
 j |
 _! |
 j   Wn t  k
 rn Xt$ j% d d  d |  d | d | d | j d | d |
 d t  t' d | d d  d! d" d# d$ t( d%   } | j   t) j* |  d&  n t) j* |  d'  | j+ d( k r}t, t( d) d* | j g  St, t( d+ d* | j g  Sqn  t- |  d, i | d 6| d- 6 S(.   NRe   R  s   %s Membership Subscription (%s)s   %B %YR;   R6   R   R   R   R   RT   RU   RW   RX   su   <p style="font-size:12px; text-align:center;">The Society for Vascular Technology of Great Britain and Ireland %s</p>s   %d/%m/%Ys*   members/receipts/membership_renewal_%s.pdfRY   s&   members/receipts/view-receipt-pdf.htmlR   R   s2   members/certificates/membership_certificate_%s.pdfs'   members/certificates/view-cert-pdf.htmlRZ   R[   R   RO   R   R   R   Rt   s   account-notificationRq   s   Membership RenewedRr   sk   Your membership has been successfully renewed.<br/>Visit <a href="%s">My Receipts</a> to view your receipt.R   s9   Subscription Added - Member has been renewed and notifieds   Subscription AddedR  R  R   R   s1   admin/members/subscriptions/add-subscription.htmlt   subscription_form(.   R   R    R   R   R  Ri   R   R;   t   renew_membershipR   R   R   R   R   R+   R   R   R]   R^   R_   R   R   R   R`   Ra   Rb   Rc   Rd   Re   R   Rf   Rg   R   Rh   R$   R   R3   R   R   R'   R   R   R   R:   R   R   (   RO   Re   R;   RA  R   R   R   Rk   Rl   Rm   RZ   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   add_member_subscription$  sj    			
	
0
 ( 
!
("
	4
"c         C   s  t  t d | } t j j d |  } t d d  } d | j | d <t j |  } | j	 d d d	 d
 d d d d d d g
  x| | D]t } | j	 g  | j
 | j | j | j | j | j   | j | j | j | j f
 D] } t |  j d  ^ q  q W| S(   NRe   R;   R   s   text/csvs*   attachment; filename=%s-Subscriptions-.csvs   Content-Dispositiont   Subscriptions   Amount (GBP)s   Discount (GBP)s   Total (GBP)s
   Invoice Tot   Statuss
   Start Dates   Expiry Dates   Invoice Createds   Payment Methods   utf-8(   R   R    R%   RJ   RM   R
   R   R   R   R   R   R   R   R   R   t   get_status_displayR   R   R   R   R   R   (   RO   Re   R;   t   subscriptionsR   R   R   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   download_member_subscriptionss  s    +	'Bc         C   sH   t  t d | } t  t d | d | } t |  d i | d 6| d 6 S(   NRe   R;   s2   admin/members/subscriptions/view-subscription.htmlR   (   R   R    R%   R   (   RO   Re   t   subscription_idR;   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   view_member_subscription  s    c         C   s  t  t d | } t  t d | d | } t d |  } |  j r t |  j d | } | j   r ye | j   t j |  d  | j	 d k r t
 t d d | j g  St
 t d d | j g  SWq t k
 r t j |  d	  q Xq n  t |  d
 i | d 6| d 6| d 6 S(   NRe   R;   R  s   Transaction has been savedR  R  R   R   s   Could not save subscriptions2   admin/members/subscriptions/edit-subscription.htmlR   RA  (   R   R    R%   R   R   R  Ri   R   R   R:   R   R   Re   R   R   R   (   RO   Re   RI  R;   R   RA  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   edit_member_subscription  s    	
 c         C   s   t  t d | } t  t d | d | } y | j   t j |  d  Wn! t k
 rk t j |  d  n X| j d k r t	 t
 d d | j g  St	 t
 d d | j g  Sd  S(	   NRe   R;   s   Transaction has been deleteds   Could not delete subscriptionR  R  R   R   (   R   R    R%   R   R   R   R   R   R:   R   R   Re   (   RO   Re   RI  R;   R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_member_subscription  s    
c         C   sN   t  t d | } t j j d |  j d  } t |  d i | d 6| d 6 S(   NRe   R;   s   -contact_dates(   admin/members/contacts/all-contacts.htmlR%  (   R   R    R&   RJ   RM   RL   R   (   RO   Re   R;   R%  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyR%    s    c         C   s   t  t d | } t   } |  j r t |  j  } | j   r | j d t  } | | _ | j   t j	 |  d  | j
 d k r t t d d | j g  St t d d | j g  Sq n  t d i | d	 6| d
 6d t |   S(   NRe   R  s   Contact AddedR  R  R   R   s'   admin/members/contacts/add-contact.htmlR;   t   contact_formR[   (   R   R    R   R   R  Ri   R   R;   R   R   R:   R   R   Re   R    R   (   RO   Re   R;   RM  t   contact(    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   add_member_contact  s    			
"c      	   C   s   t  t d | } t j j d |  } t d d  } d | j | d <t j |  } | j	 d d d	 d
 d d g  xa | D]Y } | j	 g  | j
 | j | j | j | j | j f D] } t |  j d  ^ q  q| W| S(   NRe   R;   R   s   text/csvs%   attachment; filename=%s-Contacts-.csvs   Content-Dispositions   Contact Dates   Contact Typet   Categoryt   Subjectt   Operatort   Closeds   utf-8(   R   R    R&   RJ   RM   R
   R   R   R   R   t   contact_datet   contact_typet   categoryt   subjectt   operatort   closedR   R   (   RO   Re   R;   t   contactsR   R   RN  R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   download_member_contacts  s    Wc         C   sH   t  t d | } t  t d | d | } t |  d i | d 6| d 6 S(   NRe   R;   s(   admin/members/contacts/view-contact.htmlt   member_contact(   R   R    R&   R   (   RO   Re   t
   contact_idR;   R\  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   view_member_contact  s    c         C   s   t  t d | } t  t d | d | } t d |  } |  j r t |  j d | } | j   r | j   t j |  d  | j	 d k r t
 t d d | j g  St
 t d d | j g  Sq n  t |  d	 i | d 6| d
 6| d 6 S(   NRe   R;   R  s   Contact has been savedR  R  R   R   s(   admin/members/contacts/edit-contact.htmlR\  RM  (   R   R    R&   R   R   R  Ri   R   R   R:   R   R   Re   R   (   RO   Re   R]  R;   R\  RM  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   edit_member_contact  s    	
"c         C   s   t  t d | } t  t d | d | } | j   t j |  d  | j d k ro t t d d | j	 g  St t d d | j	 g  Sd  S(   NRe   R;   s   Contact has been deletedR  R  R   R   (
   R   R    R&   R   R   R   R:   R   R   Re   (   RO   Re   R]  R;   R\  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_member_contact  s    
c         C   s   t  t d | } t   } |  j r t |  j |  j  } | j   r | j d t  } | | _ | j   t	 d | d d d d d d	 | j
 t d
  f  } | j   t j |  d  t t d d | j g  Sn  t |  d i | d 6| d 6 S(   NRe   R  R;   Rq   s   New Document AddedRt   s   general-notificationRr   su   The document <strong>%s</strong> has been added to your documents, you can view this in <a href="%s">My Documents</a>t   account_documentss   Document has been created.R   R   s)   admin/members/documents/add-document.htmlt   document_form(   R   R    R   R   R2  R  Ri   R   R;   R'   Rq   R   R   R   R   Re   R   (   RO   Re   R;   Rb  t   documentR   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   add_document*  s    			

c         C   so   t  t d | } t  t d | } | j rC t |  | j d t St j |  d  t t	 d d | j
 g  S(   NRe   t   save_ass5   Sorry there is no file associated with this document.R   R   (   R   R    R*   Rc  R   RN   R   R   R   R   Re   (   RO   Re   t   document_idR;   Rc  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   download_documentJ  s    	c         C   s   t  t d | } t  t d | } t d |  } |  j r t |  j |  j d | } | j   r | j   t j	 |  d  t
 t d d | j g  Sn  t |  d i | d 6| d 6| d	 6 S(
   NRe   R  s   Document has been updated.R   R   s*   admin/members/documents/edit-document.htmlR;   Rc  Rb  (   R   R    R*   R   R   R2  R  Ri   R   R   R   R   Re   R   (   RO   Re   Rf  R;   Rc  Rb  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   edit_documentX  s    	
c         C   sZ   t  t d | } t  t d | } | j   t j |  d  t t d d | j g  S(   NRe   s   Document has been deleted.R   R   (	   R   R    R*   R   R   R   R   R   Re   (   RO   Re   Rf  R;   Rc  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_documentl  s
    
c         C   s8   t  j j   j d  } t d i | d 6d t |   S(   NR6   s%   admin/members/types/member-types.htmlRC   R[   (   R"   RJ   RK   RL   R    R   (   RO   RC   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyRC   x  s    c         C   sz   t    } |  j rZ t  |  j  } | j   rZ | j   t j |  d  t t d   Sn  t d i | d 6d t	 |   S(   Ns   Member Type Createdt   admin_member_typess(   admin/members/types/add_member_type.htmlt   formR[   (
   R   R   R  Ri   R   R   R   R   R    R   (   RO   Rk  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   add_member_type  s    		
c         C   s   t  t d | } t d |  } |  j r~ t |  j |  j d | } | j   r~ | j   t j |  d  t	 t
 d   Sn  t d i | d 6| d 6d t |   S(	   NRe   R  s   Member Type UpdatedRj  s)   admin/members/types/edit_member_type.htmlR   Rk  R[   (   R   R"   R   R   R2  R  Ri   R   R   R   R   R    R   (   RO   t   type_idR   Rk  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   edit_member_type  s    	
c         C   s<   t  t d | } | j   t j |  d  t t d   S(   NRe   s   Member Type has been deletedRj  (   R   R"   R   R   R   R   R   (   RO   Rm  R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_member_type  s    
c         C   s8   t  j j   j d  } t d i | d 6d t |   S(   Nt   orders'   admin/members/groups/member_groups.htmlt   member_groupsR[   (   R)   RJ   RK   RL   R    R   (   RO   Rq  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_groups  s    c         C   sz   t    } |  j rZ t  |  j  } | j   rZ | j   t j |  d  t t d   Sn  t d i | d 6d t	 |   S(   Ns   Member Group AddedRr  s*   admin/members/groups/add_member_group.htmlRk  R[   (
   R   R   R  Ri   R   R   R   R   R    R   (   RO   Rk  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_group_add  s    		
c         C   s   t  t d | } t d |  } |  j rx t |  j d | } | j   rx | j   t j |  d  t t	 d   Sn  t
 d i | d 6| d 6d t |   S(	   NRe   R  s   Member Group UpdatedRr  s+   admin/members/groups/edit_member_group.htmlt   member_groupRk  R[   (   R   R)   R   R   R  Ri   R   R   R   R   R    R   (   RO   t   group_idRt  Rk  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_group_edit  s    	
c         C   s<   t  t d | } | j   t j |  d  t t d   S(   Nt   ds   Member Group has been deletedRr  (   R   R)   R   R   R   R   R   (   RO   Ru  Rt  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   admin_member_group_delete  s    
c         C   s&   t  j j   } t |  d i | d 6 S(   Ns6   admin/members/areas_of_interest/areas_of_interest.htmlRD   (   R!   RJ   RK   R   (   RO   RD   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyRD     s    c         C   sq   t    } |  j rZ t  |  j  } | j   rZ | j   t j |  d  t t d   Sn  t |  d i | d 6 S(   Ns   Area of interest Addedt   admin_members_areas_of_interests9   admin/members/areas_of_interest/add_area_of_interest.htmlRk  (	   R   R   R  Ri   R   R   R   R   R   (   RO   Rk  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   add_area_of_interest  s    		
c         C   s   t  t d | } t d |  } |  j rx t |  j d | } | j   rh | j   t j |  d  n  t t	 d   St
 |  d i | d 6| d 6 S(   NRe   R  s   Area of Interest UpdatedRy  s:   admin/members/areas_of_interest/edit_area_of_interest.htmlR   Rk  (   R   R!   R   R   R  Ri   R   R   R   R   R   (   RO   t   area_idR   Rk  (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   edit_area_of_interest  s    	
c         C   s<   t  t d | } | j   t j |  d  t t d   S(   NRe   s!   Area of Interest has been deletedRy  (   R   R!   R   R   R   R   R   (   RO   R{  R   (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   delete_area_of_interest  s    
(   t   django.shortcutsR    R   R   t   django.template.loaderR   t   django.templateR   t   django.contrib.auth.decoratorsR   t   django.db.modelsR   t   django.confR   t   django.httpR   R	   R
   t   django.core.urlresolversR   t   django.contrib.auth.modelsR   t   django.core.mailR   t   django.contribR   t   dateutil.relativedeltaR   R   R   t   filetransfers.apiR   t   modules.members.adminformsR   R   R   R   R   R   R   R   R   R   R   R   R   t   modules.members.modelsR    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   t   modules.meeting_booking.modelsR.   t   modules.payments.modelsR/   R   Ra   R]   t   modules.core.decoratorsR0   t   modules.core.functionsR1   R2   t   signalsR3   t   modules.members.functionsR4   R5   RR   Rn   Ro   R   R   R   R   R@   R   R   R   R   R   R   R   R   R   R   R  R  R  R	  R
  R!  R)  R1  R7  R8  R9  R:  R<  R@  R   RC  RH  RJ  RK  RL  R%  RO  R[  R^  R_  R`  Rd  Rg  Rh  Ri  RC   Rl  Rn  Ro  Rr  Rs  Rv  Rx  RD   Rz  R|  R}  (    (    (    s8   /var/www/svtgbi.org/svtgbi/modules/members/adminviews.pyt   <module>   s   4.44Z	
!"RXH@2	O			 
