ó
%M*Xc           @   s   d  d l  Z  d  d l Z d  d l m Z d  d l m Z m Z d  d l m Z d  d l	 m
 Z
 m Z d  d l m Z d  d l Td „  Z d	 „  Z d
 „  Z d S(   iÿÿÿÿN(   t   HttpResponse(   t   render_to_responset   redirect(   t   reverse(   t   LldevicePdlagMeasuret   LldevicePdlagRealtime(   t   user_get_language(   t   *c         C   sc  |  j  j ƒ  rU|  j d } |  j d } t j |  j d d ƒ } t j |  j d d ƒ } t j j d | d | d | ƒ j d	 ƒ } t	 j
 ƒ  } | j d
 ƒ } t	 j ƒ  } t | _ | j | _ | j | _ t	 j ƒ  }	 t	 j j |	 _ t	 j j |	 _ t	 j j |	 _ t	 j j |	 _ t	 j ƒ  }
 t	 j j |
 _ t	 j j d |
 _ t	 j ƒ  } t	 j  ƒ  } t | _! |	 | _" | | _# | | _$ |
 | _ |  j% j& d d ƒ d k rÞ| j' d d d d d | d | d | d | | ƒ n8 | j' d d d d d | d | d | d | | ƒ t | j( d ƒ _) d7 | j( d ƒ _* t	 j ƒ  } t	 j j | _ t	 j j d | _ t	 j ƒ  } t	 j  ƒ  } t | _! |	 | _" | | _# | | _$ | | _ t | j( d ƒ _) d8 | j( d ƒ _* | j+ d d d | ƒ | j, d ƒ } d9 | _- |  j% j& d d ƒ d k rõ| j+ d d d t. | ƒ d  | ƒ | j+ d d! d" t/ | ƒ d# | ƒ | j+ d d d$ t0 | ƒ d  | ƒ | j+ d d d% t. | ƒ d  | ƒ | j+ d d& d' t/ | ƒ d# | ƒ | j+ d d d( t0 | ƒ d  | ƒ nØ | j+ d d d) t. | ƒ d  | ƒ | j+ d d! d* t/ | ƒ d# | ƒ | j+ d d d+ t0 | ƒ d  | ƒ | j+ d d d, t. | ƒ d  | ƒ | j+ d d& d- t/ | ƒ d# | ƒ | j+ d d d. t0 | ƒ d  | ƒ t	 j ƒ  }	 t	 j j |	 _ t	 j j |	 _ t	 j j |	 _ t	 j j |	 _ t	 j ƒ  } |	 | _" d! } xÐ | D]È } | j+ | d | j1 j2 d ƒ | ƒ | j+ | d | j3 | ƒ | j+ | d! | j4 | ƒ | j+ | d | j5 | ƒ | j+ | d | j6 | ƒ | j+ | d& | j7 | ƒ | j+ | d | j8 | ƒ | d 7} q7Wt j j9 ƒ  j2 d/ ƒ d0 | d1 } t: d2 d3 ƒ } d4 | | d5 <| j; | ƒ | St: d6 ƒ Sd  S(:   Nt	   device_idt   device_identifiert   startDateInputs   %Y-%m-%d %H:%M:%St   endDateInputt   timestamp__gtet   timestamp__ltet   lldevicelistt	   timestampt   Sheet1t   yellowt   langs   en-gbt   hri    i   s   Uredaj: s    [s   ]
Vrijeme od: s    do s   Device: s   ]
Time from: s    to i   i   t
   light_bluei   i   t   Vrijemei   s
   CH1 Tlak [t   ]i   s   CH1 Protok [s   /s]s   CH1 Ukupni protok [s
   CH2 Tlak [i   s   CH2 Protok [s   CH2 Ukupni protok [s   CH1 Pressure [s
   CH1 Flow [s   CH1 Total Flow [s   CH2 Pressure [s
   CH2 Flow [s   CH2 Total Flow [s   %Y-%m-%d_%H-%M-%St   _s   .xlst   content_types   application/vnd.ms-excels   attachment; filename=%ss   Content-Dispositions   Invalid useri   i   i   (<   t   usert   is_authenticatedt   POSTt   datetimet   strptimeR   t   objectst   filtert   order_byt   xlwtt   Workbookt	   add_sheett	   Alignmentt   Truet   wrapt   VERT_CENTERt   vertt   HORZ_CENTERt   horzt   Borderst   THINt   bottomt   leftt   rightt   topt   Patternt   SOLID_PATTERNt   patternt   Stylet
   colour_mapt   pattern_fore_colourt   XFStylet   Fontt   boldt   borderst   fontt	   alignmentt   sessiont   gett   write_merget   rowt   height_mismatcht   heightt   writet   colt   widtht#   measure_return_pressure_unit_stringt   measure_return_flow_unit_stringt%   measure_return_total_flow_unit_stringR   t   strftimet   ch1_pressuret   ch1_flowt   ch1_total_flowt   ch2_pressuret   ch2_flowt   ch2_total_flowt   nowR    t   save(   t   requestR   R	   t   excel_start_datet   excel_end_datet   measurementst   workbookt   sheett   alignR:   t   color0t   style0R;   t   colort   style2t   columnt   style1t   xls_row_countert   measuret   download_namet   response(    (    s`   D:\SMTech Code\LeakLess Software\LeakLess Monitor\LeakLess Monitor\Applications\Measure\views.pyt   measure_generate_excel   s¬    						;8						$$$$$'$$$$$$	"$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 t	 d ƒ ƒ Sd  S(   Nt   .i   s   deviceInfoTable.htmlt   user_objectt   device_realtime_infoR   t
   login_page(
   R   R   t   get_all_permissionst   appendt   splitt   get_device_realtime_info_dataR   R   R   R   (   RR   t	   permfieldt   permissionst   permRf   (    (    s`   D:\SMTech Code\LeakLess Software\LeakLess Monitor\LeakLess Monitor\Applications\Measure\views.pyt!   measure_show_device_realtime_info   s    +c            sû  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 6| d 6ˆ  j d 6} t	 ˆ  j ƒ } t
 ˆ  j ƒ } t ˆ  j ƒ } t ˆ  j ƒ }	 t ˆ  j ƒ }
 t ˆ  j ƒ } ˆ  j d  k	 rhˆ  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	 r+t ˆ  j |	 ƒ d | | d <n
 d | d <ˆ  j d  k	 rf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(   Nt   id__int   lldevicelist__inc         3   s'   |  ] } | j  ˆ  j k r | Vq d  S(   N(   t   idt   lldevicelist_id(   t   .0t   x(   R`   (    s`   D:\SMTech Code\LeakLess Software\LeakLess Monitor\LeakLess Monitor\Applications\Measure\views.pys	   <genexpr>’   s    t   Unknownt   IDt
   Identifiert	   Timestampi  i<   s   %02d:%02d:%02dt   ElapsedTimet    t    t   PressureCH1s   ? t   PressureCH2t   FlowCH1t   FlowCH2t   TotalFlowCH1t   TotalFlowCH2(   t   LldevicelistR   R   R   t   nextt   Nonet   rem_identifierRs   R   t/   measure_return_recalculate_pressure_unit_stringt   measure_return_pressure_factort+   measure_return_recalculate_flow_unit_stringt   measure_return_flow_factort1   measure_return_recalculate_total_flow_unit_stringt    measure_return_total_flow_factorR   RP   t   divmodt   secondsRJ   t   strRM   RK   RN   RL   RO   Ri   (   t   device_id_listt   devices_infot   device_listt   device_realtime_measuret
   identifiert   device_dictt   pressure_unitt   pressure_factort	   flow_unitt   flow_factort   total_flow_unitt   total_flow_factort   time_differencet   hourst	   remaindert   minutesRŽ   (    (   R`   s`   D:\SMTech Code\LeakLess Software\LeakLess Monitor\LeakLess Monitor\Applications\Measure\views.pyRk   ‹   sZ    "	


"""
"
"
"
(   R!   R   t   django.httpR    t   django.shortcutsR   R   t   django.core.urlresolversR   t   Applications.Measure.modelsR   R   t   Applications.Users.viewsR   t"   Applications.Measure.support_unitsRc   Ro   Rk   (    (    (    s`   D:\SMTech Code\LeakLess Software\LeakLess Monitor\LeakLess Monitor\Applications\Measure\views.pyt   <module>   s   
	p	