
FWc           @   su  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 d  d l 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 d  d l m Z d  d l Z d  d l Z d  d l 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 S(   i(   t   HttpResponseRedirect(   t   reverse(   t   Document(   t   DocumentForm(   t   render_to_responset   rendert   redirect(   t   Lldevicelistt   Lldevicenoatificationst   Lldevicenoatificationsackt   AuthUser(   t   LldevicePdlagMeasure(   t   LldevicePdlagRealtime(   t   HttpResponse(   t   Q(   t   RequestContext(   t   getlanguageNc         C   s/   |  j  j d  |  j d <t |  j j d   S(   Nt   langt   HTTP_REFERER(   t   GETt   gett   sessionR    t   META(   t   request(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   setlanguage   s    c   	      C   sx  |  j  j   rjt j j d d  } i  } t j j   } t |  j  j	 |  j
 j d d   } t | d  } t | d  } x | D] } |  j  j d t | j	   r i  } | j | d <| j | d	 <| j | d
 <| j | d <| j	 | d <| j | d <| | | j	 <q q Wt d i |  j  d 6t j |  d 6t |   d 6| d 6| d 6| d 6| d 6t |    St d  Sd  S(   Nt
   loc_activei   R   s   en-gbt   allt   notaccepteds   DeviceList.t   latt   lont   typet   rem_identifiert   idt   infos	   maps.htmlt   user_objectt   devicest   noatificationst   noatification_all_countt   noatification_notaccepted_countt   iconss   /leakless-monitor(   t   usert   is_authenticatedR   t   objectst   filtert   Measuret   viewst   getIconListt   returnNoatificationListR    R   R   t   lent   has_permt   strt   loc_latt   loc_longt   loc_typeR   t   rem_infoR   t   jsont   dumpsR   R   R   (	   R   t   DevicesDatat   devices_dictt
   icons_dictt   noatification_dictR%   R&   t   devicet   device_dict(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   maps   s2    $c         C   s   |  j  j   r |  j j d  } x] | D]U } t j j d |  } t j j d |  j  j  } t d | d |  } | j	   q( Wt
 d  St d  Sd  S(   Nt   noatification_idst   idlldevicenoatificationsR    t   useridt   noatificationidt   OKs   /leakless-monitor(   R(   R)   R   R   R   R*   R
   R    R	   t   saveR   R   (   R   t   NoatificationIDst   noatificationt   NoatificationDatat   UserDatat   NoatificationAcceptRecord(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   acceptNoatifications3   s    
c         C   s  t  j  j   } t j j d |  } t j j d |   } | j d d t } t j j d |  } | j d |  } g  } g  } x | D] }	 i  }
 |	 j	 |
 d <|	 j
 |
 d <|	 j |
 d <| d	 k r |	 j |
 d
 <|	 j |
 d <|	 j |
 d <q | d k r |	 j |
 d
 <|	 j |
 d <|	 j |
 d <| j |
  q q Wx | D] }	 i  }
 |	 j	 |
 d <|	 j
 |
 d <|	 j |
 d <| d	 k r|	 j |
 d
 <|	 j |
 d <|	 j |
 d <q?| d k r?|	 j |
 d
 <|	 j |
 d <|	 j |
 d <| j |
  q?q?Wi  } | | d <| | d <| S(   Nt   expirationdate__gteRB   RC   t   flatt   idlldevicenoatifications__inR    R   t   icont   hrt   textt   titlet   headers   en-gbR   R   (   t   datetimet   nowR   R*   R+   R	   t   values_listt   Truet   excludeRA   R   RO   t   text_hrt   title_hrt	   header_hrt   text_ent   title_ent	   header_ent   append(   t   UserIDt   Langt   CurrentDateRH   t   NoatificationsAckedt   NoatificationsAckedListt   NoatificationDataExcludedt   ReturnDataNotAcceptedt   ReturnDataAllRG   t   NoatificationInfot
   ReturnData(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyR/   B   sP    

c         C   s   |  j  j   r g  } |  j  j   } x( | D]  } | j | j d  d  q+ Wt j j d |  } t d i |  j  d 6| d 6t	 |   d 6 St
 d  Sd  S(	   Nt   .i   t   id__ins   devices.htmlR"   R#   R   s   /leakless-monitor(   R(   R)   t   get_all_permissionsR_   t   splitR   R*   R+   R   R   R   (   R   t	   permfieldt   permissionst   permR9   (    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   showdevicesv   s    +c         C   s   |  j  j   r g  } |  j  j   } x( | D]  } | j | j d  d  q+ Wt |  } t d i |  j  d 6| d 6t |   d 6 St d  Sd  S(   NRj   i   s   deviceInfoTable.htmlR"   t
   deviceInfoR   s   /leakless-monitor(	   R(   R)   Rl   R_   Rm   t   getDeviceInfoDataR   R   R   (   R   Rn   Ro   Rp   t   DevicesInfo(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   showDeviceInfo   s    +c            s8  g  } t  j j d |   } t j j d |   } x| D]  t   f d   | D d   j } | d  k rt d } n  i  }   j | d <| | d <  j | d <t	 j
 j   j  } t	 j
 j   j  } t	 j
 j   j  } t	 j
 j   j  }	 t	 j
 j   j  }
 t	 j
 j   j  }   j d  k	 r  j | d <t j j     j } t | j d  \ } } t | d	  \ } } d
 | | | f | d <n d | d <d | d <  j d  k	 rt   j |  d | | d <n d | | d <  j d  k	 rt   j |  d | | d <n d | | d <  j d  k	 rXt   j |	  d | | d <n d | | d <  j d  k	 rt   j |	  d | | d <n d | | d <  j d  k	 rt   j |  d |
 | d <n d |
 | d <  j d  k	 rt   j |  d |
 | d <n d |
 | d <| j |  q7 W| S(   NRk   t   lldevicelist__inc         3   s'   |  ] } | j    j k r | Vq d  S(   N(   R    t   lldevicelist_id(   t   .0t   x(   t   dmeasure(    s(   /var/www/html/THWeb2/DeviceList/views.pys	   <genexpr>   s    t   Unknownt   IDt
   Identifiert	   Timestampi  i<   s   %02d:%02d:%02dt   ElapsedTimet   ?t    t   PressureCH1s   ? t   PressureCH2t   FlowCH1t   FlowCH2t   TotalFlowCH1t   TotalFlowCH2(   R   R*   R+   R   t   nextt   NoneR   Rw   t	   timestampR,   R-   t#   returnRecalculatePressureUnitStringt   returnPressureFactort   returnRecalculateFlowUnitStringt   returnFlowFactort$   returnRecalculateTotalFlowUnitStringt   returnTotalFlowFactorRT   RU   t   divmodt   secondst   ch1_pressureR2   t   ch2_pressuret   ch1_flowt   ch2_flowt   ch1_total_flowt   ch2_total_flowR_   (   t   IDListt   devices_infot   Devices_Datat   Device_MeasuresR}   R>   t   PressureUnitt   PressureFactort   FlowUnitt
   FlowFactort   TotalFlowUnitt   TotalFlowFactort   Time_Differencet   hourst	   remaindert   minutesR   (    (   Rz   s(   /var/www/html/THWeb2/DeviceList/views.pyRs      sZ    "	


""""""c         C   s   |  j  j   r yY t j j d |  j j d   j d |  j j d  d |  j j d   } t d  SWq t	 k
 r } t | j
  SXn
 t d  Sd  S(	   NR    t	   device_idR3   t   latitudeR4   t	   longitudes   Values successfully changeds   /leakless-monitor(   R(   R)   R   R*   R+   R   R   t   updateR   t	   Exceptiont   messageR   (   R   R9   t   e(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   latlonChange   s    Kc         C   s*   t  j j d |  j d  j   t d  S(   NR    t
   documentIDs   /deviceslist/maps/(   R   R*   R+   t   POSTt   deleteR   (   R   (    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   DeleteFiles   s     c         C   s2   t  j j d |  d |  } | r. | j   n  d  S(   Nt   numberOfFileR   (   R   R*   R+   R   (   t   file_idR   t	   documents(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   checkAndDeleteExisting   s    c         C   sk  |  j  d k r7t |  j |  j  } |  j d } | j   r|  j d d k r t d |  t d |  j d d d d |  } | j   n |  j d d k r t d	 |  t d |  j d d d	 d |  } | j   nO |  j d d
 k r*t d |  t d |  j d d d d |  } | j   n  t d  Sn |  j	 j
 d  } t   } | j d j j j i d d 6 t   } | j d j j j i d d 6 t   } | j d j j j i d d 6 t j j d |  j d  } d d d g } x+ t |  D] \ }	 }
 |
 | |
 j d <qWt d i | d 6| d 6| d 6| d 6| d 6t |   d 6d t |   S(   NR   R   t   Uploadt   Upload1i   t   docfileR   t   Upload2i   t   Upload3i   s   /deviceslist/maps/t	   FileForm1R    t	   FileForm2t	   FileForm3is   uploadFile.htmlt   form1t   form2t   form3t   doc_infoR   t   context_instance(   t   methodR   R   t   FILESt   is_validR   R   RE   R   R   R   t   fieldst   widgett   attrsR   R*   R+   t   order_byt	   enumerateR   R   R   R   (   R   t   formt
   device_id2t   newdocR   R   R   R   R   t   it   document(    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   list   s@    """	!	!	!	6(*   t   django.httpR    t   django.core.urlresolversR   t   DeviceList.modelsR   t   DeviceList.formsR   t   django.shortcutsR   R   R   R   R   R	   R
   t   Measure.modelsR   R   R   t   django.db.modelsR   t   django.templateR   t
   main.viewsR   R7   RT   t   randomt   Measure.viewsR,   R   R?   RK   R/   Rq   Ru   Rs   R   R   R   R   (    (    (    s(   /var/www/html/THWeb2/DeviceList/views.pyt   <module>   s0   "$				4			D	
		