ó
N\–fc           @   s¥  d  d l  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 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 d  d l m Z d  d l m Z m Z d  d l  m! Z! m" Z" d  d l# m$ Z$ d  d l% Z% d  d l& Z& d „  Z' d „  Z( d „  Z) e d „  ƒ Z* e d „  ƒ Z+ e d „  ƒ Z, e d „  ƒ Z- d „  Z. e d „  ƒ Z/ d S(   iÿÿÿÿ(   t   rendert   get_object_or_404(   t   HttpResponseRedirectt   Http404(   t   render_to_string(   t   reverse(   t   messages(   t   csrf_exempt(   t   settings(   t   current_members_only(   t   slugify_uniquet   random_string_unique(   t   AddAdvertForm(   t   JobSettingst   JobCategoryt   Job(   t   Payment(   t   Membert   Receipt(   t   job_advert_paidt   job_advert_created(   t   dateNc         C   sp   t  j ƒ  } t j j ƒ  } t j ƒ  } t j j d t	 d | ƒ j
 d ƒ } t |  d i | d 6| d 6| d 6ƒ S(   Nt	   publishedt   closing_date__gtet   closing_dates   public/jobs/jobs.htmlt   job_settingst
   categoriest   jobs(   R   t   get_soloR   t   objectst   allR   t   todayR   t   filtert   Truet   order_byR    (   t   requestR   R   R   t   latest_jobs(    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyR      s
    $c         C   s|   t  j j ƒ  } t j ƒ  } t t  d | ƒ} t j j d | d t d | ƒ j	 d ƒ } t
 |  d i | d 6| d 6| d 6ƒ S(	   Nt   slugR   R   R   R   s   public/jobs/category.htmlt   current_categoryR   (   R   R   R   R   R   R   R   R    R!   R"   R    (   R#   t   category_slugR   R   t   categoryR   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyR(   )   s
    *c         C   s?   t  t d | ƒ} t j j ƒ  } t |  d i | d 6| d 6ƒ S(   NR%   s   public/jobs/job.htmlt   jobR   (   R   R   R   R   R   R    (   R#   t   job_slugR)   R   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyR)   4   s    c         C   su  t  t d |  j ƒ} t ƒ  } t j ƒ  } t j j ƒ  } |  j	 rPt |  j	 ƒ } | j
 ƒ  rPyÉ | j d t ƒ } t | j t ƒ | _ | | _ | j ƒ  | j ƒ  | j ƒ  d k rõ t d t d ƒ | _ | j ƒ  | j |  j d <t t d ƒ ƒ St | _ | j ƒ  t |  | ƒ t t d ƒ ƒ SWqMt k
 rIt j |  d	 ƒ qMXqPn  t |  d
 i | d 6| d 6| d 6ƒ S(   Nt   usert   commiti    id   t
   unique_keyt
   advert_keyt   jobs_add_advert_paymentt   jobs_add_advert_completes#   Sorry, could not create your adverts   public/jobs/add-advert.htmlR   R   t   add_advert_form(    R   R   R+   R   R   R   R   R   R   t   POSTt   is_validt   savet   FalseR
   t   titleR   R%   t   membert   save_m2mt	   get_totalR   R-   t   sessionR   R   R!   t   completeR   t	   ExceptionR   t   errorR    (   R#   R7   R1   R   R   t   advert(    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt
   add_advert=   s2    			


	
c         C   s‹  t  t d |  j ƒ} |  j j d t ƒ ry t  t d |  j d ƒ} | j r‰ |  j d =t j	 |  d ƒ t
 t d ƒ ƒ Sn t
 t d ƒ ƒ S| j ƒ  } t d | d d d	 | ƒ } | j ƒ  t j rÖ d
 | j | _ n d | j | _ | 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ƒ S(   NR+   R.   R-   s#   You have already completed payment.t   jobs_add_advertR7   t   types
   job-advertt
   job_adverts   Job_Advert_%sDs   Job_Advert_%ss   %s%st   jobs_add_advert_payment_processs   %s:%s:%s:GBP:%s:%siÿÿÿÿs   public/jobs/payment.htmlR>   t
   total_costt   paymentt   redirect_urlt   encrypted_string(   R   R   R+   R:   t   getR5   R   R;   R   R=   R   R   R9   R   R4   R   t   DEVELOPMENTt   idt   invoicet   WORLD_PAY_SECRET_KEYt   WORLD_PAY_INSTALLATION_IDt   PAYMENT_URLt   hashlibt   md5t	   hexdigestR    (   R#   R7   R>   t   costRE   t
   secret_keyt   installation_idRF   t   stringRO   RG   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt   add_advert_paymentb   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  } | sš | sš | sš | rª | j d ƒ n  | t j k rÉ | j d ƒ n  | s§| d	 k rx| j d
 k r\d | _ | | _	 | j
 ƒ  | j } t | _ t | _ | j	 | _ | j
 ƒ  d } t d | j d | d d d | d | j	 d d ƒ }	 t d t d ƒ |	 _ |	 j
 ƒ  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
 ƒ  t% |  | |	 ƒ 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 } t( |  d% i | d& 6ƒ S('   Nt
   callbackPWt    t   transStatust
   authAmountt   cartIdRK   s   Missing a Required Variables   World Pay Password Incorrectt   Yt   pendingR;   s
   Job AdvertR7   RB   RA   s
   job-advertt   namet   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/job_advert_%s.pdft   wbs&   members/receipts/view-receipt-pdf.htmlt   receipts   %s%st    jobs_add_advert_payment_completet   rejectedt   jobs_add_advert_payment_failures   public/payment-redirect.htmlt   next()   R2   R   RH   R   R   t   appendR   t   WORLD_PAY_PASSWORDt   statust   amountR4   RB   R!   R;   t   paidt
   price_paidR   R7   R   R-   t   pdfcrowdt   Clientt   setPageMarginst   setFooterHtmlR   R   t   strftimet   opent   ost   patht   joint
   MEDIA_ROOTRJ   R   t   convertHtmlt   closet   fileR   t   URLR   R    (   R#   RW   RY   RZ   R[   RE   t   errorsR>   t   receipt_nameRf   t   clientt   output_filet   htmlRj   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt   add_advert_payment_processˆ   sZ    				
			
3
 (

	
	
c         C   sE   t  j ƒ  } |  j j d t ƒ r. |  j d =n  t |  d i | d 6ƒ S(   NR.   s$   public/jobs/add-advert-complete.htmlR   (   R   R   R:   RH   R5   R    (   R#   R   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt   add_advert_payment_completeÕ   s    c         C   s    t  j |  d ƒ t t d ƒ ƒ S(   Nsk   Sorry, your payment could not be taken at this time. If you wish to retry your payment, please click below.R/   (   R   R=   R   R   (   R#   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt   add_advert_payment_failureà   s    c         C   s9   t  j ƒ  } t j j ƒ  } t |  d i | d 6| d 6ƒ S(   Ns$   public/jobs/add-advert-complete.htmlR   R   (   R   R   R   R   R   R    (   R#   R   R   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt   add_advert_completeç   s    (0   t   django.shortcutsR    R   t   django.httpR   R   t   django.template.loaderR   t   django.core.urlresolversR   t   django.contribR   t   django.views.decorators.csrfR   t   django.confR   t   modules.core.decoratorsR	   t   modules.core.functionsR
   R   t   formsR   t   modelsR   R   R   t   modules.payments.modelsR   t   modules.members.modelsR   R   t   emailsR   R   t   datetimeR   Rq   Rw   R   R(   R)   R?   RV   R„   R…   R†   R‡   (    (    (    s0   /var/www/svtgbi.org/svtgbi/modules/jobs/views.pyt   <module>   s2   				%&M	