ó
 ìjfc           @   s  d  d l  m Z 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 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% Z% d  d l& Td  d l' Td  d l( m) Z) d  d l* Td  d l+ Td  d l, Td  d l- Td  d l. Td  d l/ Td  d l0 Td  d l' Td „  Z1 d „  Z2 e! d „  ƒ Z3 e! d „  ƒ Z4 e! d „  ƒ Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 d S(   iÿÿÿÿ(   t   rendert   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   messages(   t   Usert   Group(   t   slugify(   t   EmailMessage(   t   csrf_exempt(   t   datetimet   datet   timeN(   t   *(   t   Resourcec         C   sª  |  j  j ƒ  r/ t j |  d ƒ t t d ƒ ƒ Sy t j j d d ƒ } Wn t	 } n Xy t
 j j d d ƒ } Wn t	 } n Xt ƒ  } t ƒ  } t ƒ  } t ƒ  } t ƒ  } t d i | d 6ƒ } t ƒ  }	 t ƒ  }
 t ƒ  } t j j d	 t	 ƒ | j d
 _ t ƒ  } t ƒ  } |  j rFt |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ }	 t |  j ƒ }
 t |  j ƒ } t j j d	 t	 ƒ | j d
 _ t |  j |  j ƒ } t |  j ƒ } t |  t ƒ } | rFt d t d ƒ | _  t! ƒ  | _" | j# ƒ  | j  |  j$ d <t t d ƒ ƒ Sn  t% |  d i | d 6| d 6| d 6| d 6| d 6| d 6| d 6|	 d 6|
 d 6| d 6| d 6| d 6ƒ S(   Ns!   Sorry, you are already logged in.t   account_homet   slugs   registration-form-introt   names   United Kingdomt   initialt   countryt
   admin_onlyt   professional_certificationid   t
   unique_keyt
   member_keyt   register_payments!   public/registration/register.htmlt   content_blockt   registration_form_usert   registration_form_passwordt   registration_form_personalt   registration_form_member_typet   registration_form_hospitalt"   registration_form_personal_addresst   registration_form_are_traineet   registration_form_trainingt   registration_form_professionalt   registration_form_supportt   registration_form_terms(&   t   usert   is_authenticatedR   t   errorR   R   t   ContentBlockt   objectst   gett   Falset   Countryt   RegistrationFormUsert   RegistrationFormPasswordt   RegistrationFormPersonalt   RegistrationFormMemberTypet   RegistrationFormHospitalt   RegistrationFormPersonalAddresst   RegistrationFormAreTraineet   RegistrationFormTrainingt   RegistrationFormProfessionalt   ProfessionalChoicet   filtert   fieldst   querysett   RegistrationFormSupportt   RegistrationFormTermst   POSTt   FILESt   register_membert   Truet   random_string_uniquet   MemberR!   t   get_next_membership_numbert   membership_numbert   savet   sessionR    (   t   requestR$   R   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   t   member(    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyt   register%   sX    

											
c         C   sø  t  } |  j j d t  ƒ rX y  t j j d |  j d ƒ } WqX t j ƒ  k
 rT qX Xn  | s~ t j |  d ƒ t t	 d ƒ ƒ S| j
 r± |  j d =t j |  d ƒ t t	 d ƒ ƒ Sy t j j d d ƒ } Wn t  } n X| j ƒ  } t d | d	 d
 ƒ } | j ƒ  t j r*d t j | j f | _ n d t j | j f | _ | j ƒ  t j } t j } d t j t	 d ƒ f } d | | | | j | f } d d  l }	 |	 j | ƒ j ƒ  }
 t d i | d 6| d 6| d 6| d 6| d 6|
 d 6d t |  ƒ ƒS(   NR"   R!   s,   Sorry, could not find the current applicant.RS   s6   You have already completed your membership applicationR   s   registration-paymentRR   t   typet   registrations   %s_Member_Registration_%s_DEVs   %s_Member_Registration_%ss   %s%st   register_payment_processs   %s:%s:%s:GBP:%s:%siÿÿÿÿs    public/registration/payment.htmlR$   t   paymentt   payment_amountt   redirect_urlt   encrypted_stringt   context_instance(   R6   RP   R5   RL   R4   t   DoesNotExistR   R2   R   R   t   completet   warningR3   t   get_registration_feet   PaymentRO   R
   t   DEVELOPMENTt   WEBSITE_CODEt   idt   invoicet   WORLD_PAY_SECRET_KEYt   WORLD_PAY_INSTALLATION_IDt   PAYMENT_URLt   hashlibt   md5t	   hexdigestR   R   (   RQ   RR   R$   RX   RW   t
   secret_keyt   installation_idRY   t   stringRh   RZ   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyR#   ^   s>     	


	
		c         C   s¥  |  j  s t ‚ n  |  j  j d d ƒ } |  j  j d d ƒ } |  j  j d d ƒ } |  j  j d d ƒ } t t d | ƒ} g  } t } | s  | s  | s  | r¶ t } | j d ƒ n  | t j	 k rÛ t } | j d ƒ n  | sb| d	 k r3| j
 d
 k rd | _
 | | _ | j ƒ  t j ƒ  } | j }	 t |	 d | j | j ƒ }
 | j } t | _ t | _ | j ƒ  d t j | j d ƒ f } t d | d | d | d | j d d ƒ } t d t 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 | j# | _' | j ƒ  Wn n Xt( j) d! d  d | d  | d" | ƒ | j+ rßt, j) d! d  d | ƒ n  t- d | d# d$ d% d& d' d( t. d) ƒ ƒ } | j ƒ  n  d* t j/ t. d+ ƒ f } qŽd, | _
 | j ƒ  d* t j/ t. d- ƒ f } n, d, | _
 | j ƒ  d* t j/ t. d- ƒ f } t0 |  d. i | d/ 6ƒ S(0   Nt
   callbackPWt    t   transStatust
   authAmountt   cartIdRd   s   Missing a Required Variables   World Pay Password Incorrectt   Yt   pendingR]   i   s   %s Membership Subscription (%s)s   %B %YRR   R   t
   start_datet   amount_paidt   payment_types   Credit Cardi   R!   t   calmdigitalt    dc33e7c4525620565185d0a00d90b8f0t   50t   0su   <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_payment_%s.pdft   wbs&   members/receipts/view-receipt-pdf.htmlt   receiptt   senderRW   RT   s   account-notificationt   titles   Membership Payment Completet   textsy   You have succesfully paid for your membership registration. <br/>Visit <a href="%s">My Receipts</a> to view your receipt.t   my_receiptss   %s%st   register_payment_completet   rejectedt   register_payment_failures)   public/registration/payment-redirect.htmlt   next(1   RG   R   R5   R   R`   R6   RJ   t   appendR
   t   WORLD_PAY_PASSWORDt   statust   amountRO   R   t   todayt   yeart   montht   dayRR   t   paidR]   t   WEBSITE_NAMEt   strftimet   ReceiptRK   R!   t   pdfcrowdt   Clientt   setPageMarginst   setFooterHtmlt   opent   ost   patht   joint
   MEDIA_ROOTRc   t   render_to_stringt   convertHtmlt   closet   filet   registration_payment_completedt   sendt   Nonet   referrer_keyt   registration_member_referrerst   UserActivityR   t   URLR    (   RQ   Rn   Rp   Rq   Rr   RW   t   errorsR2   RŠ   R‹   t   expiry_dateRR   t   receipt_nameR}   t   clientt   output_filet   htmlt   notificationR…   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyRV   ™   sr    				
				
*
 (
"	+	
	
c         C   sI   y t  j j d d ƒ } Wn t } n Xt d i | d 6d t |  ƒ ƒS(   NR   s   registration-payment-completes)   public/registration/payment-complete.htmlR$   R[   (   R3   R4   R5   R6   R   R   (   RQ   R$   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyR‚   ê   s
    
c         C   sI   y t  j j d d ƒ } Wn t } n Xt d i | d 6d t |  ƒ ƒS(   NR   s   registration-payment-failures(   public/registration/payment-failure.htmlR$   R[   (   R3   R4   R5   R6   R   R   (   RQ   R$   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyR„   ô   s
    
c         C   s­  t  } |  j j d t  ƒ rX y  t j j d |  j d ƒ } WqX t j ƒ  k
 rT qX Xn  | s~ t j |  d ƒ t t	 d ƒ ƒ S| j
 r§ t j |  d ƒ t t	 d ƒ ƒ Sy t j j d d ƒ } Wn t  } n Xt d | ƒ } |  j r†t |  j d | ƒ} | j ƒ  r†| j ƒ  t | _
 d	 | _ | j ƒ  t j d
 d  d |  d | ƒ | j rst j d
 d  d |  d | ƒ n  t t	 d ƒ ƒ Sn  t d i | d 6| d 6d t |  ƒ ƒS(   NR"   R!   s,   Sorry, could not find the current applicant.RS   s1   Your details have already been sent for approval.R   s   registration-invoicet   instancet   InvoiceR~   RQ   RR   t!   register_payment_invoice_completes(   public/registration/payment-invoice.htmlR$   t   invoice_formR[   (   R6   RP   R5   RL   R4   R\   R   R2   R   R   R]   R^   R3   t   RegistrationFormInvoiceRG   t   is_validRO   RJ   Rw   t   registration_invoice_completedR    R¡   R¢   R£   R   R   (   RQ   RR   R$   R°   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyt   payment_invoiceÿ   s:     	
	
		
	c         C   sÇ   t  } |  j j d t  ƒ rX y  t j j d |  j d ƒ } WqX t j ƒ  k
 rT qX Xn  | s~ t j |  d ƒ t t	 d ƒ ƒ Sy t
 j j d d ƒ } Wn t  } n Xt d i | d 6d	 t |  ƒ ƒS(
   NR"   R!   s,   Sorry, could not find the current applicant.RS   R   s   registration-invoice-completes1   public/registration/payment-invoice-complete.htmlR$   R[   (   R6   RP   R5   RL   R4   R\   R   R2   R   R   R3   R   R   (   RQ   RR   R$   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyt   payment_invoice_complete/  s     
c         C   sÍ   t  } |  j j d t  ƒ r^ y& t j j d |  j d d t ƒ } Wq^ t j ƒ  k
 rZ q^ Xn  | s„ t j |  d ƒ t	 t
 d ƒ ƒ Sy t j j d d ƒ } Wn t  } n Xt d i | d	 6d
 t |  ƒ ƒS(   NR"   R!   R]   s,   Sorry, could not find the current applicant.RS   R   s   registration-completes.   public/registration/registration-complete.htmlR$   R[   (   R6   RP   R5   RL   R4   RJ   R\   R   R2   R   R   R3   R   R   (   RQ   RR   R$   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyt   register_completeD  s    &
c         C   sñ   y t  j j d d ƒ } Wn t } n Xt } t } y, t j j d | ƒ } t | _ | j ƒ  Wnm t j k
 rÐ y, t j j d | ƒ } t | _	 | j ƒ  WqÑ t j k
 rÌ t
 d i  d t |  ƒ ƒSXn Xt
 d i | d 6d t |  ƒ ƒS(	   NR   s   registration-referrer-confirmR¢   t   referrer2_keys+   public/registration/referrer-not-found.htmlR[   s)   public/registration/referrer-confirm.htmlR$   (   R3   R4   R5   R6   RL   RJ   t   referrer_approvedRO   R\   t   referrer2_approvedR   R   (   RQ   R¢   R$   t   slotRR   (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyt   referrer_confirmX  s$    
		(:   t   django.shortcutsR    R   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.contribR   t   django.contrib.auth.modelsR   R   t   django.template.defaultfiltersR   t   django.core.mailR   t   django.views.decorators.csrfR   R   R   R   R’   t   modules.pages.modelst   modules.blocks.modelst   modules.resources.modelsR   t   modules.payments.modelst   modules.payments.functionst   modelst   formst	   functionst   signalst   modules.core.functionsRS   R#   RV   R‚   R„   R´   Rµ   R¶   R»   (    (    (    s?   /var/www/svtgbi.org/svtgbi/modules/members/registrationviews.pyt   <module>   sD   









	9	;Q
	0		