ó
Ò&—^c           @  s  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 Td  d l Td  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 Td  d l  Td  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* m+ Z+ d e j, f d „  ƒ  YZ- d e j, f d „  ƒ  YZ. d e j, f d „  ƒ  YZ/ e j0 e1 d d d e/ ƒd e e f d „  ƒ  YZ2 d e j, f d „  ƒ  YZ3 d  e j, f d! „  ƒ  YZ4 d" e j, f d# „  ƒ  YZ5 d$ e j, f d% „  ƒ  YZ6 e j0 e7 d d& d e6 ƒe j0 e8 d d' d e6 ƒd( e j, f d) „  ƒ  YZ9 e j0 e: d d* d e9 ƒd+ e j, f d, „  ƒ  YZ; e j0 e< d d- d e; ƒe j0 e= d d. d e; ƒd/ e j, f d0 „  ƒ  YZ> d1 e j, f d2 „  ƒ  YZ? e j0 e@ d d3 d e? ƒd4 e j, f d5 „  ƒ  YZA d6 e j, f d7 „  ƒ  YZB d8 e j, f d9 „  ƒ  YZC e j0 eD d d: d eC ƒd; e j, f d< „  ƒ  YZE d= e j, f d> „  ƒ  YZF d? e j, f d@ „  ƒ  YZG dA e j, f dB „  ƒ  YZH dC e j, f dD „  ƒ  YZI dE e j, f dF „  ƒ  YZJ dG e j, f dH „  ƒ  YZK dI e j, f dJ „  ƒ  YZL dK e j, f dL „  ƒ  YZM dM e j, f dN „  ƒ  YZN dO e j, f dP „  ƒ  YZO dQ e j, f dR „  ƒ  YZP e e ƒ dS „  ƒ ZQ e e ƒ dT „  ƒ ZR e e ƒ dU „  ƒ ZS d S(V   iÿÿÿÿ(   t   unicode_literals(   t   File(   t   PermissionsMixin(   t   AbstractBaseUser(   t
   get_hashert   identify_hasher(   t   models(   t   Point(   t   *(   t   reverse(   t	   FileField(   t   post_deletet	   post_savet   pre_savet
   pre_delete(   t   receiver(   t   ugettext_lazy(   t   settings(   t   AutoSlugField(   t   invalidate_objt   invalidate_modelt   invalidate_allN(   t	   HTMLFieldt   Categoryc           B  st   e  Z e j d  d d e ƒ Z e j d d d e d e ƒ Z e j d e ƒ Z	 e j d e ƒ Z
 d	 „  Z d
 „  Z RS(   t
   max_lengthid   t   db_indext	   upload_tou   media/%Y/%m/%dt   nullt   blankt   auto_now_addt   auto_nowc         C  s   d |  j  S(   Nu   %s(   t   name(   t   self(    (    s,   /var/www/agenderbackend/backoffice/models.pyt   __unicode__!   s    c         O  s'   t  t ƒ t t |  ƒ j | | Ž  d  S(   N(   R   R   t   supert   save(   R    t   argst   kwargs(    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   %   s    
(   t   __name__t
   __module__R   t	   CharFieldt   TrueR   t
   ImageFieldt   iconst   DateTimeFieldt	   createdAtt	   updatedAtR!   R#   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR      s   	t   Townc           B  s¤   e  Z e j d  d d e ƒ Z e j d  d ƒ Z e j d  d ƒ Z e j d e ƒ Z	 e j
 d e d e ƒ Z e j d e ƒ Z e j d e ƒ Z d „  Z d	 „  Z RS(
   R   id   R   t   defaultR   R   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   R   t   country(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   1   s    c         O  s'   t  t ƒ t t |  ƒ j | | Ž  d  S(   N(   R   R/   R"   R#   (   R    R$   R%   (    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   4   s    
(   R&   R'   R   R(   R)   R   t   cityR1   t   BooleanFieldt   validt
   PointFieldt   locationR,   R-   R.   R!   R#   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR/   )   s   	t   Photoc           B  sw   e  Z e j d  d d e d e ƒ Z e j d e ƒ Z e j d e ƒ Z e j	 d e ƒ Z
 e j	 d e ƒ Z d „  Z RS(   R   u   media/%Y/%m/%dR   R   R0   R   R   c         C  s   d |  j  S(   Nu   %s(   t   picture(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   @   s    (   R&   R'   R   R*   R)   R8   R3   R4   t   waitingValidationR,   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR7   9   s   t   dispatch_uidu   signal_add_photot   sendert   Userc        	   B  s`  e  Z e j e d  ƒ d e d e ƒZ e j e d e d e ƒZ	 e j
 d d d e d e ƒ Z e j
 d d d e d e ƒ Z e j
 d d d e d e ƒ Z e j
 d d d e d e d e ƒ Z e j
 d d d e d e d e ƒ Z e j
 d d d e d e ƒ Z e j
 d d d e d e ƒ Z e j d d	 d
 d d e d e ƒ Z e j e d d ƒZ e j
 d d d e d e ƒ Z e j
 d d d e d e ƒ Z e j d e d e ƒ Z e j e d ƒ d
 e ƒZ e j e d ƒ d
 e ƒZ e j d e d e ƒ Z  e j! d
 d ƒ Z" e j! d
 d ƒ Z# e j! d
 d ƒ Z$ e j! d
 d ƒ Z% e j d
 e ƒ Z& e j d
 e ƒ Z' e j d
 e ƒ Z( e j d e d
 e ƒ Z) e j* d e d
 e d e ƒ Z+ e j d
 e ƒ Z, e j d
 e ƒ Z- e j. d e d e ƒ Z/ e j d
 e ƒ Z0 e1 ƒ  Z2 d Z3 g  Z4 d d d „  ƒ  YZ5 d „  Z6 e7 e6 ƒ Z8 d „  Z9 d „  Z: d „  Z; d „  Z< RS(   u   email addresst   uniqueR   R   R   R   id   iÿ   R   u   media/%Y/%m/%dR0   u   media/avatar.pngt   throughu   PhotoProfilei   u   activeu   staffi    u   emailt   Metac           B  s    e  Z e d  ƒ Z e d ƒ Z RS(   u   Useru   Users(   R&   R'   t   _t   verbose_namet   verbose_name_plural(    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR?   l   s   c         C  s7   |  j  r/ d |  j |  j |  j  j |  j  j f Sd Sd  S(   Nu   %s, %s %s %su   none(   t   refTownt   streett   zipcodeR2   R1   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyt   _get_full_addressr   s    	#c         O  s¦   t  |  j ƒ } yW t | ƒ d k re t | d ƒ } t | d ƒ } t t | ƒ t | ƒ ƒ |  _ n  Wn  t k
 rˆ } t j	 | ƒ n Xt
 t |  ƒ j | | Ž  d  S(   Ni    u   latu   lng(   t   get_lng_latt   full_addresst   lent   strR   t   floatR6   t	   Exceptiont   loggert   infoR"   R<   R#   (   R    R$   R%   t   locationFoundt   latt   lngt   e(    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   {   s    %c         C  s    d |  j  |  j f } | j ƒ  S(   uU   
        Returns the first_name plus the last_name, with a space in between.
        u   %s %s(   t
   first_namet	   last_namet   strip(   R    t	   full_name(    (    s,   /var/www/agenderbackend/backoffice/models.pyt   get_full_name†   s    c         C  s   |  j  S(   u6   
        Returns the short name for the user.
        (   RS   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyt   get_short_name   s    c           s©   ‡  f d †  } | d  k r t St d ƒ } t } ˆ  j j d ƒ d k ra t ˆ  j ƒ } t } n  | j | ˆ  j ƒ } | r¥ | r¥ ˆ  j | ƒ ˆ  j	 d d g ƒ n  | S(   Nc           s$   ˆ  j  |  ƒ ˆ  j d d g ƒ d  S(   Nt   update_fieldsu   password(   t   set_passwordR#   (   t   raw_password(   R    (    s,   /var/www/agenderbackend/backoffice/models.pyt   setter”   s    u   defaultu   $i    RY   u   password(
   t   Nonet   FalseR   t   passwordt   findR   R)   t   verifyRZ   R#   (   R    R[   R\   t   hashert   must_updatet
   is_correct(    (   R    s,   /var/www/agenderbackend/backoffice/models.pyt   check_password“   s    	(    (=   R&   R'   R   t
   EmailFieldR@   R)   t   emailt
   ForeignKeyR/   RC   R(   t   usernameRS   RT   t
   facebookIdt	   twitterIdt	   instagramt	   pushTokenR*   t	   mainPhotot   ManyToManyFieldR7   t   photosRD   RE   R5   R6   R3   t	   is_activeR^   t   is_staffR,   t   birthdayt   IntegerFieldt
   nbFollowert   nbFollowingt   nbPostt   nbLikeR4   t   removeAdt   onlinet   androidt   NullBooleanFieldt   iost   acceptCommunityt	   acceptCGUt	   TextFieldt   biot
   acceptPusht   UserManagert   objectst   USERNAME_FIELDt   REQUIRED_FIELDSR?   RF   t   propertyRH   R#   RW   RX   Re   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR<   F   sP   !$$$					t   Followc           B  sM   e  Z e j e d  d ƒZ e j e d  d ƒZ e j d e ƒ Z	 d „  Z
 RS(   t   related_nameu   who_is_followedu   who_followsR   c         C  s   t  |  j ƒ S(   N(   RJ   t   follow_time(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   °   s    (   R&   R'   R   Rh   R<   t	   followingt   followerR,   R)   RŠ   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRˆ   «   s   t   PhotoProfilec           B  s›   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 ƒ Z
 e j d  e ƒ Z e j d e ƒ Z e j d e ƒ Z e j d  e ƒ Z e j d  e ƒ Z d „  Z RS(   R0   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   t   refUsert   refPhoto(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   ¿   s    (   R&   R'   R   Rh   R7   R   R<   RŽ   R3   R^   t   publicR)   t   privateR,   R-   R.   R4   R9   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR   µ   s   t   Articlec        	   B  s  e  Z e j e ƒ Z e j d  d d e d e ƒ Z e	 d e d d d e d d ƒ Z e j d  d d e d e ƒ Z e ƒ  Z e j d	 d
 d e d e ƒ Z e j d  d d e d e ƒ Z e j d e ƒ Z e j d e ƒ Z e j d e ƒ Z d „  Z d „  Z RS(   R   iÿ   R   R   R0   R=   t   populate_fromu   titrei   R   u   media/%Y/%m/%dR   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   RC   t   titre(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   Ó   s    c         O  s'   t  t ƒ t t |  ƒ j | | Ž  d  S(   N(   R   R’   R"   R#   (   R    R$   R%   (    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   Ö   s    
N(   R&   R'   R   Rh   R/   RC   R(   R)   R”   R   R]   t   slugt   chapeauR   t   texteR*   t   imaget   lienWebR,   R-   R.   R3   R4   R!   R#   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR’   Ç   s   !		t   Postc           B  sÜ  e  Z e j e ƒ Z e j e ƒ Z d! d" d# d$ d% d& d' f Z e j	 d e d d  ƒ Z
 d( d) f Z e j	 d e d e d e ƒ Z e j d d d e d e ƒ Z e j d d d e d e ƒ Z e j d d d e d e ƒ Z e j d d d e d e ƒ Z e j d d d e d e ƒ Z e j d d d e d e ƒ Z e j d e d e ƒ Z e j	 d d  ƒ Z e j	 d d  ƒ Z e j d e d e ƒ Z e j d e ƒ Z e j d e ƒ Z e j d e ƒ Z  d „  Z! d „  Z" d  „  Z# RS(*   i    u   newsi   u   musici   u   clubbingi   u   culturei   u   photographyi   u   newuserincommunityi   u   notsett   choicesR0   u   photou   videoR   R   R   u   media/%Y/%m/%dR   iÿ   iÈ   i   iô  R   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   RŽ   RC   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   û   s    c         C  s³   |  j  r¯ |  j r¯ t j |  j  ƒ } y` t j t j j |  j  ƒ } t	 j
 d | ƒ |  j j t j j | ƒ t t | d ƒ ƒ ƒ Wq¯ t k
 r« } t	 j
 d | ƒ q¯ Xn  d  S(   Nu   ==== OUVRE FICHIER %si    u
   FICHIER %s(   t   webSiteImageUrl_remoteURLt   webSiteImageUrlt   urllibt   urlretrieveR   t
   MEDIA_ROOTt   ost   patht   basenameRM   RN   R#   R   t   openRL   (   R    t   resultR¢   RR   (    (    s,   /var/www/agenderbackend/backoffice/models.pyt   get_remote_imageþ   s    	c         O  s'   t  t ƒ t t |  ƒ j | | Ž  d  S(   N(   R   Rš   R"   R#   (   R    R$   R%   (    (    s,   /var/www/agenderbackend/backoffice/models.pyR#     s    
(   i    u   news(   i   u   music(   i   u   clubbing(   i   u   culture(   i   u   photography(   i   u   newuserincommunity(   i   u   notset(   i   u   photo(   i   u   video($   R&   R'   R   Rh   R<   RŽ   R/   RC   t   categoryTypeRt   t   postCategoryt   mediaTypeChoicesR)   t	   mediaTypeR*   t   mediaUrlR(   t   webSitet   webSiteTitlet   webSiteDescriptionR   t   URLFieldRœ   R€   t   messageRx   t	   nbCommentR3   R4   R9   R,   R-   R.   R!   R¦   R#   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRš   Ü   s:   				u   signal_add_postu   signal_delete_postt   PostCommentsc           B  s  e  Z e j e ƒ Z e j e ƒ Z e j d  d d e	 d e	 ƒ Z
 e j d e	 ƒ Z d d f Z e j d	 e d e	 d e	 ƒ Z e j d  d d e	 d e	 ƒ Z e j d e	 d e	 ƒ Z e j d
 e	 ƒ Z e j d e	 ƒ Z e j d e	 ƒ Z e j d e	 ƒ Z d „  Z RS(   R   iÈ   R   R   R0   i    u   locationi   u   photoR›   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   t   refPostRŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   %  s    (   i    u   location(   i   u   photo(   R&   R'   R   Rh   Rš   R³   R<   RŽ   R(   R)   t   userDisplayNameR3   t   isMediaMessageR©   Rt   Rª   t
   mediaValueR€   t   commentR,   R-   R.   R4   R9   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR²     s   	u   signal_add_postcommentt   UserLikec           B  sS   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 ƒ Z
 e j d e	 ƒ Z d „  Z RS(   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   R³   RŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   3  s    (   R&   R'   R   Rh   R<   RŽ   Rš   R³   R,   R)   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR¸   -  s
   u   signal_add_userlikeu   signal_predelete_userliket   Chatc           B  s_   e  Z e j e d  d ƒZ e j e d  d ƒZ e j d e ƒ Z	 e j d e ƒ Z
 d „  Z RS(   R‰   u   user_oneu   user_twoR   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   t
   refUserOnet
   refUserTwo(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   >  s    (   R&   R'   R   Rh   R<   Rº   R»   R,   R)   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR¹   8  s
   t   ChatMessagec           B  sõ   e  Z e j e ƒ Z e j e ƒ Z e j	 d  d d e
 d e
 ƒ Z e j d d ƒ Z d d f Z e j d	 e d e
 d e
 ƒ Z e j	 d  d d e
 d e
 ƒ Z e j d e
 d e
 ƒ Z e j d d ƒ Z e j d
 e
 ƒ Z e j d e
 ƒ Z d „  Z RS(   R   iÈ   R   R   R0   i    u   locationi   u   photoR›   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   t   refChatt   senderId(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   Q  s    (   i    u   location(   i   u   photo(   R&   R'   R   Rh   R¹   R½   R<   R¾   t   pgcryptot   EncryptedCharFieldR)   t   senderDisplayNamet   EncryptedIntegerFieldRµ   R©   Rª   R¶   t   EncryptedTextFieldR°   t   isReadt   EncryptedDateTimeFieldR-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR¼   A  s   	u   signal_add_messaget	   ChatMediac           B  sb   e  Z e j e ƒ Z e j d  d d e d e ƒ Z e	 j
 d e ƒ Z e	 j
 d e ƒ Z d „  Z RS(   R   u   media/%Y/%m/%dR   R   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   R½   R-   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   \  s    (   R&   R'   R   Rh   R¹   R½   R*   R)   t   mediaR¿   RÅ   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRÆ   V  s
   t   Placec        	   B  s~  e  Z e j d  d ƒ Z e d e d d d e d d ƒ Z e j	 e
 d d ƒZ e j d  d ƒ Z e j d  d ƒ Z e j	 e ƒ Z e j d	 d
 d e d e ƒ Z e j d e d e ƒ Z e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z e j d e d e ƒ Z e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z e j d e ƒ Z e j d e ƒ Z  e j d e ƒ Z! e j" d d ƒ Z# e j" d d ƒ Z$ e j d e d e ƒ Z% e j d e d e ƒ Z& e j d  d d e d e ƒ Z' e j d e d e ƒ Z( d „  Z) e e) _* d „  Z+ e, e+ ƒ Z- d „  Z. d „  Z/ RS(   R   id   R   R0   R=   R“   u   nameR‰   u   placescategoriesR   u   media/%Y/%m/%dR   i   iÈ   R   R   i    R   c         C  s   d t  j |  j j S(   Nu(   <img src="%s" width="240" height="150"/>(   R   t	   MEDIA_URLRn   R   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyt	   thumbnailx  s    c         C  s&   d |  j  |  j |  j j |  j j f S(   Nu   %s, %s %s %s(   RD   t   zipCodeRC   R2   R1   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRF   }  s    c         O  s‰   t  t ƒ t |  j ƒ } t | ƒ d k rl t | d ƒ } t | d ƒ } t t | ƒ t | ƒ ƒ |  _ n  t	 t |  ƒ j
 | | Ž  d  S(   Ni    u   latu   lng(   R   RÈ   RG   RH   RI   RJ   R   RK   R6   R"   R#   (   R    R$   R%   RO   RP   RQ   (    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   ƒ  s    
!c         C  s   d |  j  S(   Nu   %s(   R   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   Œ  s    N(0   R&   R'   R   R(   R   R   R)   R]   R•   Rh   R   t   refCategoryRD   RË   R/   RC   R*   Rn   R5   R6   Rg   t   phoneR¬   R€   t   descriptionRj   t   tagInstagramt   openingTimeR3   R^   t
   freeAccessR,   R-   R.   Rt   t   noteAveraget   nbVoteR4   t   highlightedt   googlePlaceIdt   googlePlaceJsonRÊ   t
   allow_tagsRF   R‡   RH   R#   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRÈ   _  s<   !					t
   PlacesVotec           B  sq   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 d e	 d d ƒ Z
 e j d e	 ƒ Z e j d e	 ƒ Z d „  Z RS(   R   R   R0   i    R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   t   refPlaceRŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   š  s    (   R&   R'   R   Rh   RÈ   RÙ   R<   RŽ   t
   FloatFieldR)   t   noteR,   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRØ   “  s   u   signal_addvotet   PlacesCommentsc           B  s¡   e  Z e j e ƒ Z e j e ƒ Z e j d  d ƒ Z	 e j
 d e d e ƒ Z e j d e ƒ Z e j d e ƒ Z e j d  e ƒ Z e j d  e ƒ Z d „  Z RS(   R0   i    R   R   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   RÙ   RŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   ¨  s    (   R&   R'   R   Rh   RÈ   RÙ   R<   RŽ   Rt   RÛ   R€   R)   R·   R,   R-   R.   R3   R4   R9   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRÜ   ž  s   t   PlacesUsersc           B  sS   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 ƒ Z
 e j d e	 ƒ Z d „  Z RS(   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   RÙ   RŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   ²  s    (   R&   R'   R   Rh   RÈ   RÙ   R<   RŽ   R,   R)   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRÝ   ¬  s
   t   EventCategoryc           B  sV   e  Z e j d  d d e ƒ Z e j d e ƒ Z e j d e ƒ Z d „  Z	 d „  Z
 RS(   R   id   R   R   R   c         C  s   d |  j  S(   Nu   %s(   R   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   ¹  s    c         O  s'   t  t ƒ t t |  ƒ j | | Ž  d  S(   N(   R   RÞ   R"   R#   (   R    R$   R%   (    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   ¼  s    
(   R&   R'   R   R(   R)   R   R,   R-   R.   R!   R#   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRÞ   µ  s
   	t   Eventc        	   B  se  e  Z e j d  d ƒ Z e d e d d d e d d ƒ Z e j d  d d e ƒ Z	 e j
 d e d e ƒ Z e j
 d e d e d e ƒ Z e j
 d e d e d e ƒ Z e j e d	 d
 ƒZ e j e d d d	 d ƒZ e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z e j e ƒ Z e j d d d e d e d  d ƒ Z e j e d d ƒZ e j d e d e ƒ Z e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z e j d  d d e d e ƒ Z  e j! d e d e ƒ Z" e j d  d d e d e ƒ Z# e j d  d d e d e ƒ Z$ e j% d e& ƒ Z' e j% d e& ƒ Z( e j d  d d e d e ƒ Z) e j* d e d e ƒ Z+ e j
 d e ƒ Z, e j
 d e ƒ Z- e j% d e d e ƒ Z. e j% d e ƒ Z/ e j% d e& ƒ Z0 e j! d e d e ƒ Z1 e j! d e d e ƒ Z2 e j% d e ƒ Z3 e4 d „  ƒ Z5 d „  Z6 e e6 _7 d „  Z8 e4 e8 ƒ Z9 d „  Z: d „  Z; RS(   R   id   R   R0   R=   R“   u   nameR   R   R‰   u   eventsplacei   u   categorieseventR   u   media/%Y/%m/%diü  R>   u   PhotoEventsi   R   R   c         C  s5   |  j  r- |  j |  j  } | j ƒ  d } | Sd Sd  S(   Ni€Q i   (   t   startDateEventt   endDateEventt   total_seconds(   R    t   timeDurationt
   tempsTotal(    (    s,   /var/www/agenderbackend/backoffice/models.pyt   durationá  s
    	c         C  s9   d |  j  j k r' d t j |  j  j Sd |  j  j Sd  S(   Nu   httpu(   <img src="%s" width="240" height="150"/>(   R8   R   R   RÉ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRÊ   ë  s    c         C  s&   d |  j  |  j |  j j |  j j f S(   Nu   %s, %s %s %s(   RD   RË   RC   R2   R1   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRF   ó  s    c         O  s‰   t  t ƒ t |  j ƒ } t | ƒ d k rl t | d ƒ } t | d ƒ } t t | ƒ t | ƒ ƒ |  _ n  t	 t |  ƒ j
 | | Ž  d  S(   Ni    u   latu   lng(   R   Rß   RG   RH   RI   RJ   R   RK   R6   R"   R#   (   R    R$   R%   RO   RP   RQ   (    (    s,   /var/www/agenderbackend/backoffice/models.pyR#   ù  s    
!c         C  s   d |  j  S(   Nu   %s(   R   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!     s    N(<   R&   R'   R   R(   R   R   R)   R]   R•   t	   placeNameR,   t	   dateEventRà   Rá   Rh   RÈ   RÙ   RÞ   t   refEventCategoryRD   RË   R/   RC   R*   R8   Ro   R7   Rp   R5   R6   Rg   RÍ   t   pageFacebookR€   RÎ   Rj   RÐ   R3   R^   t   isWeeklyt   isDailyRÏ   R¯   t	   ticketUrlR-   R.   R4   t   automaticDeletet   requireAttentiont
   jsonStripet   jsonDatet   onIndexPageR‡   Rå   RÊ   R×   RF   RH   R#   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRß   À  sN   !$
					t   EventCommentsc           B  s   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 d e	 ƒ Z
 e j d e	 ƒ Z e j d e	 ƒ Z e j d e	 ƒ Z e j d e	 ƒ Z d „  Z RS(   R   R   R   R   R0   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   t   refEventRŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!     s    (   R&   R'   R   Rh   Rß   Ró   R<   RŽ   R€   R)   R·   R,   R-   R.   R3   R4   R9   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRò     s   t
   EventUsersc           B  sS   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 ƒ Z
 e j d e	 ƒ Z d „  Z RS(   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   Ró   RŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!     s    (   R&   R'   R   Rh   Rß   Ró   R<   RŽ   R,   R)   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRô     s
   t   PhotoEventsc           B  s†   e  Z e j e ƒ Z e j e ƒ Z e j e ƒ Z	 e j
 d  e ƒ Z e j
 d e ƒ Z e j d e ƒ Z e j d e ƒ Z d „  Z RS(   R   R   R0   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   Ró   R   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   $  s    (   R&   R'   R   Rh   Rß   Ró   R7   R   R<   RŽ   R,   R)   R-   R.   R3   R4   R9   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRõ     s   t   CheckInEventc           B  sS   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 ƒ Z
 e j d e	 ƒ Z d „  Z RS(   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   Ró   RŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   -  s    (   R&   R'   R   Rh   Rß   Ró   R<   RŽ   R,   R)   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRö   '  s
   t	   GoToEventc           B  sS   e  Z e j e ƒ Z e j e ƒ Z e j d  e	 ƒ Z
 e j d e	 ƒ Z d „  Z RS(   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   Ró   RŽ   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   7  s    (   R&   R'   R   Rh   Rß   Ró   R<   RŽ   R,   R)   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR÷   1  s
   t   Subscriptionc           B  sŒ   e  Z e j e ƒ Z d d d d f Z e j d e d	 e d
 e ƒ Z	 e j
 ƒ  Z e j
 ƒ  Z e j
 d e ƒ Z e j
 d e ƒ Z d „  Z RS(   i    u	   one_monthi   u   three_monthsi   u
   six_monthsi   u   one_yearR›   R   R   R   R   c         C  s   d |  j  |  j f S(   Nu   %s - %s(   RŽ   t   subscription(   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   J  s    (   i    u	   one_month(   i   u   three_months(   i   u
   six_months(   i   u   one_year(   R&   R'   R   Rh   R<   RŽ   t   subscriptionTypeRt   R)   Rù   R,   t	   startDatet   endDateR-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRø   ;  s   	t   Promoc           B  s}   e  Z e j d  d ƒ Z e j e d e d e ƒZ e j	 d e
 ƒ Z e j d e ƒ Z e j d e ƒ Z e j d e ƒ Z RS(   R   id   R   R   R0   R   R   (   R&   R'   R   R(   t   codeRh   R<   R)   RŽ   R3   R^   t   burnR,   t   usedOnR-   R.   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyRý   M  s   t   NotificationToSendc           B  s³   e  Z e j d  d e d d ƒZ e j d d d e d e ƒ Z d d f Z e j	 d e ƒ Z
 d d d d d f Z e j	 d e ƒ Z e j d e ƒ Z e j d e ƒ Z d „  Z RS(   u   UserR   R‰   u   toUserR   i   R   R   i    u   PUSHi   u   EMAILR›   u   TO_SENDu   SENDINGi   u   SENTi   u   ERROR_SENDINGi   u   REFUSEDR   R   c         C  s   d |  j  |  j j f S(   Nu   %s - %s(   R°   t   toUserIdRi   (   R    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR!   l  s    (   i    u   PUSH(   i   u   EMAIL(   i    u   TO_SEND(   i   u   SENDING(   i   u   SENT(   i   u   ERROR_SENDING(   i   u   REFUSED(   R&   R'   R   Rh   R)   R  R(   R°   t   notif_type_choiceRt   t
   notifyTypet   status_choicet   statusR,   R-   R.   R!   (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyR  Y  s   		c         K  sE   t  g  |  j j D]* } t | t ƒ r t | | j d  ƒ ^ q ƒ d  S(   N(   t   delete_filest   _metat   fieldst
   isinstanceR
   t   getattrR   R]   (   R;   t   instanceR%   t   field_(    (    s,   /var/www/agenderbackend/backoffice/models.pyt   handle_files_on_deletet  s    c           s™   d | k o | d } | s• yP |  j  j d | j ƒ j ƒ  ‰  ˆ  d  k	 rk ‡  f d †  |  j j Dƒ | _ n  Wq• t k
 r‘ } t	 j
 d | ƒ q• Xn  d  S(   Nu   rawt   pkc           s:   i  |  ]0 } t  | t ƒ r t ˆ  | j d  ƒ | j “ q S(   N(   R
  R
   R  R   R]   (   t   .0R  (   t   old_instance(    s,   /var/www/agenderbackend/backoffice/models.pys
   <dictcomp>†  s   	 u   PreSave Error %s(   R„   t   filtert   idt   firstR]   R  R	  t   files_cacheRL   RM   t   debug(   R;   R  R%   t   from_fixtureRR   (    (   R  s,   /var/www/agenderbackend/backoffice/models.pyt   set_instance_cachez  s    &c           s    t  ˆ  d ƒ rœ ˆ  j rœ g  } xR ˆ  j D]G } ˆ  j | } t ˆ  | d  ƒ } | r( | | k r( | j | ƒ q( q( Wt | ƒ ‡  f d †  ˆ  j Dƒ ˆ  _ n  d  S(   Nu   files_cachec           s%   i  |  ] } t  ˆ  | d  ƒ | “ q S(   N(   R  R]   (   R  t
   field_name(   R  (    s,   /var/www/agenderbackend/backoffice/models.pys
   <dictcomp>—  s   	 (   t   hasattrR  R  R]   t   appendR  (   R;   R  R%   t
   deletablesR  t   old_file_valuet   new_file_value(    (   R  s,   /var/www/agenderbackend/backoffice/models.pyt   handle_files_on_updateŒ  s    
(T   t
   __future__R    t   django.core.filesR   t   django.contrib.auth.modelsR   t   django.contrib.auth.base_userR   t   django.contrib.auth.hashersR   R   t	   django.dbR   t   django.contrib.gis.dbt   django.contrib.gis.geosR   t   backoffice.signalst   django.db.models.signalst   django.core.urlresolversR	   t   django.db.modelsR
   R   R   R   R   t   django.dispatch.dispatcherR   t   django.utils.translationR   R@   t   backoffice.UserManagert   helperst   AgenderR   t   autoslugR   t   cacheopsR   R   R   R¿   t   tinymce.modelsR   t   ModelR   R/   R7   t   connectt   signal_add_photoR<   Rˆ   R   R’   Rš   t   signal_add_postt   signal_delete_postR²   t   signal_add_postcommentR¸   t   signal_add_userliket   signal_predelete_userlikeR¹   R¼   t   signal_add_messageRÆ   RÈ   RØ   t   signal_addvoteRÜ   RÝ   RÞ   Rß   Rò   Rô   Rõ   Rö   R÷   Rø   Rý   R  R  R  R  (    (    (    s,   /var/www/agenderbackend/backoffice/models.pyt   <module>   sv   

"

	e
4		4		E


