
&^c           @   s   d  d l  Z  d  d l Z d  d l Z d  d l m Z d  d l Z d  d l Z d  d l m Z d  d l	 m
 Z
 e j d  Z d   Z d   Z d   Z d S(	   iN(   t	   smart_str(   t   default_storage(   t	   FileFieldt   djangoc         C   s|   xu |  D]m } | r t  | d  r t  | d  r | j | j } } d | k rt | j |  t j d |  qt q q Wd  S(   Nt   storaget   paths
   avatar.pngs$   DELETE FILES On efface le fichier %s(   t   hasattrR   R   t   deletet   loggert   info(   t
   files_listt   file_t   storage_t   path_(    (    s-   /var/www/agenderbackend/backoffice/helpers.pyt   delete_files   s    $c         K   sO  t  j d  x;|  j j   D]*} y' t  j d |  |  j j |  } Wn t  j d  d
 } n X| r t | t  r | d } t | |  } | j	 j
 } t | d  rGt j j | j  rG| j i t | |  d | 6  j d | j    rGy( t j | j  t  j d | j  WqDt  j d	 | j  qDXqGq q Wd
 S(   sa  
    File cleanup callback used to emulate the old delete
    behavior using signals. Initially django deleted linked
    files when an object containing a File/ImageField was deleted.

    Usage:
    >>> from django.db.models.signals import post_delete
    >>> post_delete.connect(file_cleanup, sender=MyModel, dispatch_uid="mymodel.file_cleanup")
    s   ============== DOIT EFFACERs   On essaye le field de nom %ss   ERREUR get fieldst   instanceR   s	   %s__exactt   pks   On efface le fichier %ss   ERREUR DELETE fichier %sN(   R   R	   t   _metat
   get_fieldst	   get_fieldt   Nonet
   isinstanceR   t   getattrt	   __class__t   _default_managerR   t   osR   t   existst   filtert   excludet   _get_pk_valR   R   (   t   sendert   kwargst	   fieldnamet   fieldt   instt   ft   m(    (    s-   /var/www/agenderbackend/backoffice/helpers.pyt   file_cleanup   s*    


$&c         C   su   t  j t |    }  d |  } t j |  j   } t j |  } | d d k rm | d d d d } | Sd Sd  S(	   Nsu   https://maps.googleapis.com/maps/api/geocode/json?address=%s&sensor=false&key=AIzaSyC_JT9okK3ND5r3yzXuGuBUeBsRq8MO8Owt   statust   OKt   resultsi    t   geometryt   locationt    (   t   urllibt
   quote_plusR    t   urllib2t   urlopent   readt
   simplejsont   loads(   R*   t   urlt   responset   resultt   locationFound(    (    s-   /var/www/agenderbackend/backoffice/helpers.pyt   get_lng_lat:   s    
(   R,   R.   R1   t   django.utils.encodingR    t   loggingR   t   django.core.files.storageR   t   django.db.modelsR   t	   getLoggerR   R   R%   R7   (    (    (    s-   /var/www/agenderbackend/backoffice/helpers.pyt   <module>   s   $	
	"