ó
}×Wc           @   s|  d  d l  m Z m Z d  d l m Z m Z m Z d  d l m Z m	 Z	 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 m Z m Z m Z d  d	 l m Z d  d
 l m Z d  d l Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d S(   iÿÿÿÿ(   t   rendert   HttpResponse(   t	   Paginatort   InvalidPaget	   EmptyPage(   t   Epavet   Usert   Favorist	   Newsforumt   MiseEau(   t
   connection(   t   serializers(   t   redirect(   t   datetime(   t	   EpaveFormt
   SearchFormt   NewsforumFormt   ConnectForm(   t
   cache_page(   R   Nc         C   s$   |  j  j d ƒ } | s t St Sd  S(   Nt   userId(   t   sessiont   gett   Falset   True(   t   requestR   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   identification   s    c         C   sÉ   t  |  ƒ } | s t d ƒ St j j ƒ  } t | d ƒ } y t |  j j d d ƒ ƒ } Wn t	 k
 rr d } n Xy | j
 | ƒ } Wn) t t f k
 r± | j
 | j ƒ } n Xt |  d i | d 6ƒ S(   Ns
   bo:fbLogini   t   paget   1s   bo/home.htmlt   epaves(   R   R   R   t   objectst   allR   t   intt   GETR   t
   ValueErrorR   R   R   t	   num_pagesR    (   R   t	   identifieR   t	   paginatorR   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   home   s    

c         C   s   t  |  d i  ƒ S(   Ns   bo/connectok.html(   R    (   R   (    (    s'   /var/python/divingspotadmin/bo/views.pyt	   connectok)   s    c         C   s  |  j  d k rè t |  j ƒ } | j ƒ  rÇ | j d } | j d } t j | ƒ j ƒ  } y9 t j	 j
 d | d | ƒ } | j |  j d <t d ƒ SWqå t j k
 rÃ t |  d i | d 6d d	 6ƒ SXqñ t |  d i | d 6d
 d	 6ƒ Sn	 t ƒ  } t |  d i | d 6d d	 6ƒ S(   Nt   POSTt   emailt   passwordR   s   bo:connectoks   bo/connect.htmlt   forms   Login/Mot de passe inconnut   errors
   Non validet    (   t   methodR   R'   t   is_validt   cleaned_datat   hashlibt   sha256t	   hexdigestR   R   R   t   idR   R   t   DoesNotExistR    (   R   R*   R(   R)   t   passwordSHAt   user(    (    s'   /var/python/divingspotadmin/bo/views.pyt   connect,   s    "!	c         C   sX  |  j  d k r1t |  j ƒ } | j ƒ  r| j d } | j d } t j | ƒ j ƒ  } y7 t j	 j
 d | ƒ } t |  d i | d 6d d 6ƒ SWq.t j k
 rt d | d | d | d	 d
 d d
 d d
 d d
 d d
 d d
 d d ƒ 
} | j ƒ  | j |  j d <t d ƒ SXq:t |  d i | d 6d d 6ƒ Sn	 t ƒ  } t |  d i | d 6d
 d 6ƒ S(   NR'   R(   R)   s   bo/create.htmlR*   s   Un compte existe dÃ©jÃ .R+   t   namet   genderR,   t   fbPictureUrlt   uuidt   fbUserIdt   statusTonightt   statust   validi   R   s   bo:connectoks
   Non valide(   R-   R   R'   R.   R/   R0   R1   R2   R   R   R   R    R4   t   saveR3   R   R   (   R   R*   R(   R)   R5   R6   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   createA   s"    "E
!	c         C   sB   t  |  ƒ } | s t d ƒ St j j ƒ  } t |  d i | d 6ƒ S(   Ns
   bo:fbLogins   bo/miseeau.htmlt   miseeaux(   R   R   R	   R   R   R    (   R   R#   RB   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   miseEauY   s
    
c         C   s\  |  j  j d ƒ } |  j  j d ƒ } | |  j d <| |  j d <t ƒ  } d t | ƒ d t | ƒ d t | ƒ d } d | d } t j ƒ  } | j | ƒ xx | j ƒ  D]j } t	 ƒ  } | d	 | _
 | d
 | _ | d | _ | d | _ | d | _ | d | _ | j | ƒ q« Wt j d ƒ ƒ  }	 |	 j | d t d d	 d t ƒ}
 t |
 d d ƒS(   Nt   latt   lons   (6366*acos(cos(radians(s>   ))*cos(radians(`latitude`))*cos(radians(`longitude`) -radians(s   ))+sin(radians(s   ))*sin(radians(`latitude`))))s	   SELECT *,s>    AS dist FROM epave where valid=1 ORDER by dist ASC limit 0,40i   i   i   i   i	   i   t   jsont   ensure_asciit   indentt   use_natural_keyst   content_types   application/json(   R    R   R   t   listt   strR
   t   cursort   executet   fetchallR   t	   longitudet   latitudet   nomt   typet   totalpoissont
   profondeurt   appendR   t   get_serializert	   serializeR   R   R   (   R   RD   RE   R   t   formulet   sqlRM   t   rowt   epavet   json_serializert   data(    (    s'   /var/python/divingspotadmin/bo/views.pyt	   getEpavesa   s*    	0	!c         C   st   t  |  ƒ } | s t d ƒ S|  j j d ƒ } i  } | rf t j j d | ƒ } t |  d i | d 6ƒ St d ƒ Sd  S(   Ns
   bo:fbLoginR   t   favoris__refusers   bo/mesSpots.htmlR   (   R   R   R   R   R   R   t   filterR    (   R   R#   R   R   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   mesSpots}   s    
c         C   s   t  |  d i  ƒ S(   Ns   bo/account.html(   R    (   R   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   fbLoginŠ   s    c   	      C   s2  |  j  j d ƒ } |  j  j d ƒ } |  j  j d ƒ } |  j  j d ƒ } |  j  j d ƒ } d | d } t j | d ƒ } t j j d	 | ƒ } | r¹ | d
 j |  j d <t	 d d d ƒSt d | d | d d d | d | d | d | d	 | d d d d d d ƒ } | j
 ƒ  | j |  j d <t	 d d d ƒSd  S(   Nt   fbIdR8   R(   R9   t   birthdays   http://graph.facebook.com/s   /picture?type=larges   %m/%d/%YR<   i    R   s   {}RJ   s   application/jsonR)   R,   R:   R;   R=   R>   R?   i   (   R    R   R   t   strptimeR   R   Ra   R3   R   R   R@   (	   R   Rd   R8   R(   R9   Re   t	   fbPicturet   the_dateR6   (    (    s'   /var/python/divingspotadmin/bo/views.pyt	   checkUser   s    K
c         C   s„  t  |  ƒ } | s t d ƒ S|  j d k rdt |  j ƒ } |  j j d ƒ } | rz t j j	 d | ƒ } | d | j
 _ n  d | j
 _ d | j
 _ t j ƒ  | j
 _ d | j
 _ d | j
 _ d | j
 _ d | j
 _ | j ƒ  rm| j d t ƒ | rNt j j d	 | d d
 | j
 j ƒ } t d	 | d d | ƒ } | j ƒ  t |  d i  ƒ St |  d i  ƒ Sqmn	 t ƒ  } t |  d i | d 6ƒ S(   Ns
   bo:fbLoginR'   R   R3   i    i   R,   t   committ   refusert
   dateupdatet   refepaves   bo/ajoutok.htmls   bo/merci.htmls   bo/ajoutEpave.htmlR*   (   R   R   R-   R   R'   R   R   R   R   Ra   t   instanceRk   R?   t   paysR   t   nowRl   t   nbvotet   erreursignaleet   photot   oceanR.   R@   R   R   R   R    (   R   R#   R*   R   R6   t   monepavet   favori(    (    s'   /var/python/divingspotadmin/bo/views.pyt
   ajoutEpave¡   s4    
%
	c         C   s0  t  |  ƒ } | s t d ƒ S|  j d k rt |  j ƒ } | j ƒ  rö| j d } | j d } | j d } |  j j d ƒ } |  j j d ƒ } t	 ƒ  } d t
 | ƒ d	 t
 | ƒ d
 t
 | ƒ d }	 d |	 d }
 | j d ƒ d k r|
 d | d }
 n  | r|
 d | }
 n  | d k r<|
 d t
 | ƒ }
 n  |
 d }
 |
 GHt j ƒ  } | j |
 ƒ xx | j ƒ  D]j } t ƒ  } | d | _ | d | _ | d | _ | d | _ | d | _ | d | _ | j | ƒ qqWt |  d i | d 6ƒ St |  d i | d 6ƒ Sn	 t ƒ  } t |  d i | d 6ƒ S(    Ns
   bo:fbLoginR'   t   distanceRS   t   poissonRD   RE   s   (6366*acos(cos(radians(s>   ))*cos(radians(`latitude`))*cos(radians(`longitude`) -radians(s   ))+sin(radians(s   ))*sin(radians(`latitude`))))s	   SELECT *,s/    AS dist FROM epave where valid=1 and public=1 u   indiffÃ©rentiÿÿÿÿs    and type='t   's    and totalpoisson>=i    s    having dist<=s    ORDER by dist ASCi   i   i   i   i	   i   s   bo/resultatRecherche.htmlR   s   bo/recherche.htmlR*   (   R   R   R-   R   R'   R.   R/   R   R   RK   RL   t   findR
   RM   RN   RO   R   RP   RQ   RR   RS   RT   RU   RV   R    (   R   R#   R*   Rx   RS   Ry   RD   RE   R   RY   RZ   RM   R[   R\   (    (    s'   /var/python/divingspotadmin/bo/views.pyt	   rechercheÅ   sJ    
	0
		c         C   sß   t  |  ƒ } | s t d ƒ Si  } t j j d d ƒ j d ƒ } x… | D]} } y[ y t j j d | j ƒ } Wn, t j	 k
 rš t j j d | j ƒ } n X| j
 | _ WqG t j	 k
 rÃ d GHqG XqG Wt |  d i | d	 6ƒ S(
   Ns
   bo:fbLogint   idparenti    s   -datecreationR3   R<   R,   s   bo/forum.htmlt   messages(   R   R   R   R   Ra   t   order_byR   R   t   iduserR4   R:   t   arrondissementR    (   R   R#   R~   t   messageR6   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   forumö   s    
c         C   sØ   t  |  ƒ } | s t d ƒ S|  j j d ƒ } i  } t j j d | ƒ j d ƒ } xe | D]] } y t j j d | j	 ƒ } Wn, t j
 k
 r© t j j d | j	 ƒ } n X| j | _ qY Wt |  d i | d 6| d 6ƒ S(	   Ns
   bo:fbLoginR3   R}   s   -datecreationR<   s   bo/forumdetail.htmlR~   t   idParent(   R   R   R    R   R   R   Ra   R   R   R€   R4   R:   R   R    (   R   R#   t	   idmessageR~   R‚   R6   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   forumdetail	  s    
c   	      C   s”  t  |  ƒ } | s t d ƒ S|  j j d ƒ } | r†|  j d k rft |  j ƒ } | j ƒ  r\| j d } | j d } |  j j d ƒ } |  j j d ƒ } t	 j
 j d | ƒ } | d	 j | j _ | d	 j | j _ | | j _ | | j _ d
 | j _ d
 | j _ d
 | j _ d	 | j _ d	 | j _ t j ƒ  | j _ t j ƒ  | j _ | j ƒ  n  t d ƒ St ƒ  } t |  d i | d 6ƒ St d ƒ Sd  S(   Ns
   bo:fbLoginR   R'   t   titleR‚   RD   RE   R3   i    R,   s   bo:forums   bo/ajoutMessage.htmlR*   (   R   R   R   R   R-   R   R'   R.   R/   R   R   Ra   R8   Rn   t   pseudoR3   R€   RQ   RP   t   villet
   codepostalR   R}   t	   blacklistR   Rp   t   datecreationRl   R@   R    (	   R   R#   R   R*   R‡   R‚   RD   RE   R6   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   ajoutMessage  s:    

	c   
      C   s¦  t  |  ƒ } | s t d ƒ S|  j j d ƒ } |  j j d ƒ } | r˜|  j d k rxt |  j ƒ } | j ƒ  rn| j	 d } | j	 d } |  j j d ƒ } |  j j d ƒ } t
 j j d	 | ƒ }	 |	 d
 j | j _ |	 d
 j | j _ | | j _ | | j _ d | j _ d | j _ d | j _ | | j _ d
 | j _ t j ƒ  | j _ t j ƒ  | j _ | j ƒ  n  t d ƒ St ƒ  } t |  d i | d 6ƒ St d ƒ Sd  S(   Ns
   bo:fbLoginR   t	   refParentR'   R‡   R‚   RD   RE   R3   i    R,   s   bo:forums   bo/ajoutMessageDetail.htmlR*   (   R   R   R   R   R    R-   R   R'   R.   R/   R   R   Ra   R8   Rn   Rˆ   R3   R€   RQ   RP   R‰   RŠ   R   R}   R‹   R   Rp   RŒ   Rl   R@   R    (
   R   R#   R   R„   R*   R‡   R‚   RD   RE   R6   (    (    s'   /var/python/divingspotadmin/bo/views.pyt   ajoutMessageDetail>  s<    

	(,   t   django.shortcutsR    R   t   django.core.paginatorR   R   R   t   modelsR   R   R   R   R	   t	   django.dbR
   t   django.coreR   R   R   t   formsR   R   R   R   t   django.views.decorators.cacheR   t   django.httpR0   R   R%   R&   R7   RA   RC   R_   Rb   Rc   Ri   Rw   R|   Rƒ   R†   R   R   (    (    (    s'   /var/python/divingspotadmin/bo/views.pyt   <module>   s4   ("											$	1			"