ó
Ô‘fc           @   s  d  d l  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 Z d  d l Z d  d l Z d  d l m Z m Z m Z d  d l Td  d l Td  d l Td  d	 l m Z e d
 „ Z d „  Z d „  Z g  d „ Z e d „ Z d S(   iÿÿÿÿ(   t   render_to_responset   get_object_or_404(   t   messages(   t   Usert   Group(   t   EmailMessage(   t   HttpResponseN(   t   datetimet   datet   time(   t   *(   t   random_string_uniquec         C   s  t  } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ } t |  j ƒ }	 t	 |  j ƒ }
 t
 |  j ƒ } t |  j |  j ƒ } t |  j ƒ } | j ƒ  r| j ƒ  r| j ƒ  r| j ƒ  r| j ƒ  r| j ƒ  r|
 j ƒ  r| j ƒ  r| j ƒ  r| j ƒ  r| s| j d t  ƒ } t d t d ƒ | _ | j | j d ƒ | j ƒ  | j d t  ƒ } | | _ d | _ | j ƒ  | j | _ | j | _ | j ƒ  t |  j d | ƒ} | j ƒ  t |  j d | ƒ} | j ƒ  t |  j d | ƒ} | j ƒ  t |  j d | ƒ}	 |	 j ƒ  t	 |  j d | ƒ}
 |
 j ƒ  t
 |  j d | ƒ} | j ƒ  t |  j d | ƒ} | j ƒ  t |  j |  j d | ƒ} | j ƒ  t |  j d | ƒ} | j ƒ  | j rÿt ƒ  } | | _ n  | Sn  t j  |  d ƒ t  S(   Nt   commiti   t   usernamet	   password1t   membert   instances5   Please ensure you complete all the fields to continue(!   t   Falset   RegistrationFormUsert   POSTt   RegistrationFormPasswordt   RegistrationFormPersonalt   RegistrationFormMemberTypet   RegistrationFormHospitalt   RegistrationFormPersonalAddresst   RegistrationFormAreTraineet   RegistrationFormTrainingt   RegistrationFormProfessionalt   RegistrationFormSupportt   FILESt   RegistrationFormTermst   is_validt   saveR   R   R   t   set_passwordt   cleaned_datat   usert	   user_typet
   given_namet
   first_namet   surnamet	   last_namet   RegistrationFormKnowExistingt   referrer_emailt   random_string_unique_referrert   referrer_keyR   t   error(   t   requestt   approval_requiredt   errorst   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_termsR#   R   t   registration_form_know_existingt
   unique_key(    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pyt   register_member   sb    x
		










		c          C   sA   t  j j d t ƒ j d ƒ }  |  r9 |  d } | j d Sd Sd  S(   Nt   membership_number__isnulls   -membership_numberi    i   (   t   Membert   objectst   filterR   t   order_byt   membership_number(   t   memberst   last_member(    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pyt   get_next_membership_number[   s
    
c          C   st   xm t  ro d j d „  t d ƒ Dƒ ƒ }  t j j i |  d 6  j ƒ  r t j j i |  d 6  j ƒ  r |  Sq Wd  S(   Nt    c         s   s(   |  ] } t  j t j t j ƒ Vq d  S(   N(   t   randomt   choicet   stringt   ascii_uppercaset   digits(   t   .0t   x(    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pys	   <genexpr>g   s    i2   R,   t   referrer2_key(   t   Truet   joint   rangeR@   RA   RB   t   count(   t
   random_str(    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pyR+   d   s    	@c         C   s  g  } xk | D]c } t  | j | j ƒ } | |  j | j k r | j i | j d 6| d 6|  j | j d 6ƒ q q Wx•| D]} x„| D]|} t  | | j ƒ } d } |  j j | j ƒ rø |  j | j } | d k rà d } qø | d k rø d } qø n  | j d	 k s| j d
 k r»| rt | j ƒ }	 | j }
 |	 |  j | j k r¸| j d	 k sh| j d
 k rµt	 j
 j d |  j | j ƒ } | j i | j d 6|
 d 6| j d 6ƒ qµq¸qqˆ | j d k r| râ| j d ƒ } n d } | | k r| j i | j d 6| d 6| d 6ƒ qqˆ | j d k s=| j d k r¶| j ƒ  } |  j j | j ƒ } t } t | ƒ t | ƒ k r…t } n/ x, | D]$ } t | j ƒ | k rŒt } qŒqŒW| rd } d } x! | D] } d | | j f } qÍWxž | D]– } | j d k r?y, t j
 j d | ƒ } d | | j f } Wq‡q‡Xqñ| j d k rñy, t j
 j d | ƒ } d | | j f } Wq‡q‡XqñqñW| j i | j d 6| d 6| d 6ƒ qqˆ yD t | ƒ } | | k rù| j i | j d 6| d 6| d 6ƒ n  Wqˆ qˆ Xqˆ Wq{ W| S(   Nt   fieldt   oldt   newRH   t   onRQ   t   offR   t   countryt   hospital_countryt   idt   training_commencements   %d/%m/%Yt   professional_certificationt   other_qualificationss   %s%s,(   t   getattrR#   t   nameR   t   appendt   labelt   gett   strR]   t   CountryRA   t   strftimet   allt   getlistR   t   lenRQ   t   ProfessionalChoicet   QualificationChoice(   R.   R   t	   user_formt   formst   updated_fieldsRV   t   original_valt   formt   new_valt   original_val_idt   original_val_nameR[   t   original_valuest
   new_valuest	   differentt   original_valuet
   old_stringt
   new_stringt	   new_valuet   certificationt   qualification(    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pyt   find_updated_fieldsl   s€    6		4+	+,c      '   C   s  t  d d ƒ } d | d <t j | ƒ } | r§ | 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! d" d# d$ d% d& d' g# ƒ nj | 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( d) d! g ƒ xg| D]_} d* } x' | j j ƒ  D] } d+ | | f } q4Wd* } x' | j j ƒ  D] }	 d+ | |	 f } qdW| rŽ| 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$ | j% | j& | j' | j( | j) f$ D] }
 t* |
 ƒ j+ d, ƒ ^ qiƒ né | 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, ƒ ^ qUƒ qW| S(-   Nt   content_types   text/csvs    attachment; filename=members.csvs   Content-Dispositions   Membership Numbert   Titles
   First Names	   Last Names   Email Addresst   Typet
   Registereds   Expiry Dates   Date of Births	   Address 1s	   Address 2s	   Address 3t   Townt   CountyRg   t   Postcodet	   Telephones	   Job Titles   Institution / Companys   Hospital / Affiliations   Hospital Postcodes   Department Manager's Emailt   Trainees   Type of Trainings   Other Trainings   Training Commencements   Professional Certifications    Other Professional Certifications   Other Qualificationss   Ref 1 Emails   Ref 2 Emails   Ref 1 Name (Offline)s   Ref 1 Contacts   Ref 2 Name (Offline)s   Ref 2 Contacts
   AVS Searchs   AVS DateRH   s   %s%s s   utf-8(-   R   t   csvt   writert   writerowR_   Ri   R`   RD   t   titleR%   R'   R#   t   emailt   member_typet   date_joinedt   expiry_datet   date_of_birtht	   address_1t	   address_2t	   address_3t   townt   countyR[   t   postcodet	   telephonet	   job_titlet   institution_companyt   hospitalt   hospital_postcodet   department_manager_emailt   traineet   type_of_trainingt   other_trainingR^   t    other_professional_certificationt   avs_dateR*   t   referrer2_emailt   referee_new_1_namet   referee_new_1_detailst   referee_new_2_namet   referee_new_2_detailst   unicodet   encodet
   avs_opt_in(   R.   RE   t	   referrerst   responseRŠ   R   R_   R}   t   qualificationsR~   t   s(    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pyt   export_members¸   s$    
yjÿ í(   t   django.shortcutsR    R   t   django.contribR   t   django.contrib.auth.modelsR   R   t   django.core.mailR   t   django.httpR   RI   RK   R‰   R   R   R	   t   modelsRo   t   signalst   modules.core.functionsR   R   R>   RG   R+   R   R¯   (    (    (    s7   /var/www/svtgbi.org/svtgbi/modules/members/functions.pyt   <module>   s   $


H			L