ó
¶äjfc           @   sº  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 d  d l 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! m" Z" d  d l# m$ Z$ d  d l% m& Z& d  d l' m( Z( m) Z) m* Z* d „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 d „  Z4 d „  Z5 d „  Z6 d S(    iÿÿÿÿ(   t   rendert   get_object_or_404(   t   Q(   t   settings(   t   HttpResponseRedirect(   t   reverse(   t   messages(   t   EmailMessage(   t   authenticatet   login(   t   User(   t   date(   t   UserProfile(   t   Member(   t   Paget   PageSection(   t   HomepageSettingst   HomepageSearch(   t   MediaSectiont   MediaArticle(   t   Resource(   t   random_string_unique(   t	   LoginFormt   ForgotPasswordFormt   ChangePasswordFormc         C   s~  y" t  j j d d ƒ } | j } Wn  t  j k
 rD t } t } n Xt j ƒ  } y` t j j d d ƒ } t	 j j
 t d | ƒ t d t ƒ Bd | d t ƒj d	 | j ƒ d
  } Wn  t j k
 rÓ t } t } n XyM t j j d d ƒ } t	 j j
 d | d t d | ƒ j d	 | j ƒ d
  } Wn  t j k
 rCt } t } n Xt |  d i | d 6| d 6| d 6| d 6| d 6| d 6ƒ S(   Nt   idi   t   slugt   newst   archive_date__gtt   archive_date__isnullt   sectiont	   publisheds   -stickyi   t   eventst   event_date_end__gts   public/home.htmlt   homepage_settingst   block_layoutt   news_catt   news_articlest
   events_catt   event_articles(   R   t   objectst   getR#   t   DoesNotExistt   FalseR   t   todayR   R   t   filterR   t   Truet   order_byt   orderR    (   t   requestR"   R#   R,   R$   R%   R&   R'   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   home   s*    
K
8
c         C   s2  t  j ƒ  } |  j r"|  j j d ƒ r"t } |  j j d ƒ } t j j t d | ƒ t d | ƒ Bt d | ƒ Bƒ } t	 j j t d | ƒ t d | ƒ Bƒ } g  } x3 | D]+ } | j
 |  ƒ d k r© | j | ƒ q© q© WxH | D]@ } | j j
 |  ƒ d k rß | j | k rß | j | j ƒ qß qß Wg  }	 t j j t d | ƒ t d | ƒ Bƒ j d ƒ }
 x3 |
 D]+ } | j
 |  ƒ d k ra|	 j | ƒ qaqaWt j j d	 d
 ƒ } g  } t j j t d | ƒ t d | ƒ Bt d | ƒ Bt d t ƒ t d | ƒ Bd | ƒj d d ƒ } x3 | D]+ } | j
 |  ƒ d k r| j | ƒ qqWt j j d	 d ƒ } g  } t j j t d | ƒ t d | ƒ Bt d | ƒ Bd t d | d | ƒj d d ƒ } x3 | D]+ } | j
 |  ƒ d k r¶| j | ƒ q¶q¶Wt |  d i | d 6|	 d 6| d 6| d
 6| d 6| d 6ƒ Sn  t |  d i  ƒ S(   Nt   queryt   title__icontainst   content__icontainst   keywords__icontainst   allowedt   name__containst   description__containst   nameR   R   R   t   archive_date__gteR   t   section__namet   titleR    R   t   event_date_start__gtes!   public/search/search-results.htmlt   pagest	   resourcest   search_termt   search_resultss   public/search/search.html(   R   R,   t   POSTR)   R+   R   R(   R-   R   R   t   get_permissiont   appendt   pageR   R/   R   R   R.   R    (   R1   R,   RB   R3   R?   t   page_sectionst   final_pagesRF   R   t   final_resourcesR@   t   resourceR$   t
   final_newsR   R&   t   final_eventsR    t   event(    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   search8   sR    	5('1	&		)1c         C   s‰  t  j j d d ƒ } t  j j d d ƒ } t j ƒ  } |  j rk|  j d d k rn t t  d |  j d ƒ} n t } |  j d d k r£ t t  d |  j d ƒ} n t } t j j	 ƒ  j
 d ƒ } | } g  } g  }	 | r | j d | ƒ } | j d | ƒ } n  | r-| j d | ƒ } | j d | ƒ }	 n  g  }
 x3 | D]+ } | j |  ƒ d	 k r:|
 j | ƒ q:q:Wg  } x? |	 D]7 } | j |  ƒ d	 k rv| |
 k rv| j | ƒ qvqvWg  } x? | D]7 } | j |  ƒ d	 k r¾| |
 k r¾| j | ƒ q¾q¾Wt j j d d
 ƒ } t j j t d t ƒ t d | ƒ Bd t d | ƒj
 d d ƒ } | } g  } g  } | r| j d | ƒ } | j d | ƒ } n  | rº| j d | ƒ } | j d | ƒ } n  g  } x3 | D]+ } | j |  ƒ d	 k rÇ| j | ƒ qÇqÇWg  } x? | D]7 } | j |  ƒ d	 k r| | k r| j | ƒ qqWg  } x? | D]7 } | j |  ƒ d	 k rK| | k rK| j | ƒ qKqKWt j j d d ƒ } t j j d t d | d | ƒ j
 d d ƒ } | } g  } g  } | r| j d | ƒ } | j d | ƒ } n  | r4| j d | ƒ } | j d | ƒ } n  g  } x3 | D]+ } | j |  ƒ d	 k rA| j | ƒ qAqAWg  } x? | D]7 } | j |  ƒ d	 k r}| | k r}| j | ƒ q}q}Wg  } x? | D]7 } | j |  ƒ d	 k rÅ| | k rÅ| j | ƒ qÅqÅWt |  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| d 6ƒ St |  d i | d 6| d 6ƒ S(   Nt   typet   audiences   content-typet   content_typet    R   R=   t   search_termsR7   R   R   R;   R   R   R<   R    R>   s*   public/search/audience-search-results.htmlt   audience_searcht   content_type_searchR?   t   content_type_pagest   audience_pagest   content_type_newst   audience_newst   content_type_eventst   audience_eventss"   public/search/audience-search.html(   R   R(   R-   R   R,   RC   R   R+   R   t   allR/   RD   RE   R   R)   R   R   R.   R    (   R1   RT   RU   R,   RQ   RP   R?   t   matching_pagest   matching_content_type_pagest   matching_audience_pagesRH   RF   t   final_audience_pagest   final_content_type_pagesR$   R   t   matching_newst   matching_content_type_newst   matching_audience_newsRK   t   final_audience_newst   final_content_type_newsR&   R    t   matching_eventst   matching_content_type_eventst   matching_audience_eventsRL   RM   t   final_audience_eventst   final_content_type_events(    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyRT   t   s¦    	!!@!!-!!# c         C   sK   t  j j d t ƒ } t j j ƒ  j d ƒ } t |  d i | d 6| d 6ƒ S(   Nt   parent__isnullR:   s   public/sitemap.htmlt   top_level_pagest   mediacentre_categories(   R   R(   R-   R.   R   R\   R/   R    (   R1   Rm   Rn   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   sitemapå   s    c         C   sT   t  j j ƒ  j d ƒ } t j j ƒ  j d ƒ } t |  d i | d 6| d 6d d ƒS(   NR0   R:   s   public/sitemap.xmlR?   Rn   RQ   s   application/xhtml+xml(   R   R(   R\   R/   R   R    (   R1   R?   Rn   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   sitemap_xmlí   s    c         C   s€  t  ƒ  } |  j rit  |  j ƒ } | j ƒ  ri| j d } | j d } yøt j j d | ƒ } t d | j d | ƒ } | d  k	 r.| j
 ryOt j j d | ƒ } | j d k rö t |  | ƒ |  j j d ƒ rã t |  j d ƒ St t d ƒ ƒ Snä | j r†| j d	 k s| j d
 k r†t |  | ƒ | j rPt | _ | j ƒ  t d ƒ S|  j j d ƒ rst |  j d ƒ St t d ƒ ƒ SnT | j d k r¨t j |  d ƒ n2 | j d
 k rÊt j |  d ƒ n t j |  d ƒ Wq+t j k
 r| j rt |  | ƒ t t d ƒ ƒ Sq+Xq>t j |  d ƒ n t j |  d ƒ Wqft k
 rbt j |  d ƒ qfXqin  t |  d i | d 6ƒ S(   Nt   email_addresst   passwordt   emailt   usernamet   usert   delegatet   nextt   account_homet   currentt   lapseds   /your-membership/t   archiveds6   Sorry, this member has been archived from our systems.sQ   Sorry your membership has been lapsed, please contact us for further information.sp   Sorry, this member has not been approved yet. Please await confirmation from the council before trying to login.t   admins   Your account is disabled.s&   Your username or password is incorrectsA   Sorry, your username or password is incorrect - please try again.s   public/login/login.htmlt   form(   R   RC   t   is_validt   cleaned_dataR
   R(   R)   R   Rt   t   Nonet	   is_activeR   t	   user_typeR	   t   GETR   R   t   approvedt   member_statust   first_loginR+   t   saveR   t   errorR*   t   is_stafft	   ExceptionR    (   R1   t
   login_formRq   Rr   Ru   t   member(    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt
   login_viewõ   sR    			'		

	c         C   s   t  |  d i  ƒ S(   Ns!   public/login/member-required.html(   R    (   R1   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   member_required3  s    c         C   s   t  |  d i  ƒ S(   Ns    public/login/member-expired.html(   R    (   R1   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   member_expired8  s    c         C   s   t  |  d i  ƒ S(   Ns!   public/login/member-disabled.html(   R    (   R1   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   member_disabled=  s    c         C   s   t  |  d i  ƒ S(   Ns%   public/login/member-not-approved.html(   R    (   R1   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   member_notapprovedB  s    c         C   s1  t  ƒ  } |  j rt  |  j ƒ } y& t j j d |  j d d t ƒ } Wn* t j k
 rs t } t j	 |  d ƒ n X| rt
 d t d ƒ } | j } | | _ | j ƒ  d |  j d | t j f } t d t j | t j | j g ƒ } d	 | _ | j ƒ  t |  d
 i | j d 6ƒ Sn  t |  d i | d 6ƒ S(   NRs   R   s8   Sorry a user with that email address could not be found.i   t
   forgot_keys  
<p>A password reset form has been filled in for your account</p>

<p>Please click the following link to reset your password: -

<p><a href="http://%s/forgot-password/%s/">Reset your password</a></p>

<p>This is an automatic email generated by the %s website.</p>t	   HTTP_HOSTs   %s - Forgot Passwordt   htmls!   public/forgot/forgot-confirm.htmlt   email_resets"   public/forgot/forgot-password.htmlR}   (   R   RC   R
   R(   R)   R.   R*   R+   R   Rˆ   R   R   t   userprofileR’   R‡   t   METAR   t   WEBSITE_NAMER   t   CONTACT_EMAILRs   t   content_subtypet   sendR    (   R1   R}   Ru   R’   t   user_profilet   messaget   msg(    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   forgot_passwordG  s&    		&		
	%	
c         C   sD  y" t  j j d | ƒ } | j } Wn! t  j k
 rE t |  d i  ƒ SXt ƒ  } t } |  j rt |  j ƒ } | j	 ƒ  r| j
 | j d ƒ | j ƒ  d | _ | j ƒ  d t j |  j d |  j d t j f } t d t j | t j | j g ƒ } d | _ | j ƒ  t |  d	 i  ƒ Sn  t |  d
 i | d 6| d 6| d 6ƒ S(   NR’   s#   public/forgot/forgot-not-found.htmlt	   password1RR   sÅ   
<p>Your password for the %s website has been reset.</p>

<p>You can log on at: -</p>

<p><a href="http://%s/login/">http://%s/login/</a></p>

<p>This is an automatic email generated by the %s.</p>R“   s   %s - Forgot PasswordR”   s   public/forgot/forgot-reset.htmls$   public/forgot/forgot-reset-form.htmlRu   R}   Rˆ   (   R   R(   R)   Ru   R*   R    R   R+   RC   R~   t   set_passwordR   R‡   R’   R   R˜   R—   R   R™   Rs   Rš   R›   (   R1   R’   Rœ   Ru   R}   Rˆ   R   Rž   (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   forgot_password_confirmm  s(    		
	
	*%	
N(7   t   django.shortcutsR    R   t   django.db.modelsR   t   django.confR   t   django.httpR   t   django.core.urlresolversR   t   django.contribR   t   django.core.mailR   t   django.contrib.authR   R	   t   django.contrib.auth.modelsR
   t   datetimeR   t   modelsR   t   modules.members.modelsR   t   modules.pages.modelsR   R   t   modules.blocks.modelsR   R   t   modules.mediacentre.modelsR   R   t   modules.resources.modelsR   t	   functionsR   t   formsR   R   R   R2   RN   RT   Ro   Rp   R   RŽ   R   R   R‘   RŸ   R¢   (    (    (    s0   /var/www/svtgbi.org/svtgbi/modules/core/views.pyt   <module>   s:   		<	q			>					&