ó
0;Xc           @   s‡   d  d l  Z  d  d l m Z m Z m Z d  d l m Z d  d l Td  d l Td  d l	 Td „  Z
 d „  Z d „  Z d „  Z d	 „  Z d S(
   iÿÿÿÿN(   t   render_to_responset   rendert   redirect(   t   HttpResponse(   t   *c         C   s¾  |  j  j ƒ  rª|  j j d ƒ } |  j j d ƒ } t j j d | ƒ } t | ƒ d k rd t d ƒ S| d j	 } t
 j j d d ƒ } t | d | d ƒ } t | d | d	 ƒ } t | d | d
 ƒ } t | d | d ƒ }	 i d d 6d d 6| d 6i d d 6d d 6| d 6i d d 6d d 6| d 6i d d 6d d 6|	 d 6g }
 t |  ƒ } t |  ƒ } t d i |  j  d 6| d 6| d 6|
 d 6t |  ƒ d 6| d 6| d 6| d 6ƒ St t d ƒ ƒ Sd  S(   Nt	   device_idt   device_identifiert   lldevicelisti   s   Parameters not fetched!i    t   visible__gtet   GENERALt   ALARMt   MEASUREt   SETTINGSt	   Generalnot   name_crot   Generalt   name_engt
   param_listt   Alarmt   Mjerenjet   Measuret   Postavket   Settingss   configuration.htmlt   user_objectt   group_arrayt   langt   last_parameter_changet   user_action_list_htmlt   unit_recalculation_window_htmlt
   login_page(   t   usert   is_authenticatedt   GETt   gett   LldevicePdlagParameterst   objectst   filtert   lenR   t   lastparameterchanget   LldevicePdlagParameterinfot#   configuration_return_parameter_datat   user_get_parameter_action_listt"   user_get_unit_recalculation_windowR    t   user_get_languageR   t   reverse(   t   requestR   R   t   device_parametersR   t   parameter_infot   general_parameterst   alarm_parameterst   measure_parameterst   settings_parametersR   R   R   (    (    sJ   /var/www/html/leakless-monitor/Applications/Devices/Configuration/views.pyt   configuration_render   s6    
c         C   s  | j  d | ƒ j d d ƒ } g  } xÝ | D]Õ } g  } t |  d | j j ƒ  ƒ } t |  d | j j ƒ  ƒ } d } d }	 | j d  k	 r· | j j d ƒ } t | ƒ } t | ƒ }	 n  i | d 6t	 | ƒ d	 6t	 | ƒ d
 6| d 6|	 d 6| d 6}
 | j
 |
 ƒ q+ W| S(   Nt   groupt   idlldevice_pdlag_parameterinfot   subgroupt   loc_t   rem_i    t   ,t   infot   tmp_loct   tmp_remt   tmp_loc_numt   tmp_rem_numt	   enum_list(   R$   t   order_byt   getattrt   namet   lowert   enumtextt   Nonet   splitt   intt   strt   append(   R.   R/   t
   group_namet
   parameterst   parameters_dataR@   t	   value_loct	   value_remt   value_loc_numt   value_rem_numt   parameter_dict(    (    sJ   /var/www/html/leakless-monitor/Applications/Devices/Configuration/views.pyR(   6   s*    
c         C   s…  |  j  j ƒ  rqd } d } |  j j d ƒ } yt j j ƒ  } i  } g  } g  } xà | D]Ø } |  j j | j ƒ }	 |	 d  k	 rd | j j	 ƒ  }
 t
 |	 | ƒ sË | d 7} | j d | j j ƒ  ƒ qX n  i |	 |
 6} | j | ƒ | d 7} | j d | j j ƒ  ƒ qX | d 7} | j d | j j ƒ  ƒ qX Wt j j d | ƒ j |   | d k rîd t | ƒ d	 } d
 t | ƒ d t | ƒ d d j | ƒ } t |  j  j d | | | ƒ t d
 t | ƒ d t | ƒ d d j | ƒ ƒ Sd } d
 t | ƒ d t | ƒ d d j | ƒ } t |  j  j d | | | ƒ t d ƒ SWqt k
 rm} t d | j ƒ SXn t t d ƒ ƒ Sd  S(   Ni    R   R8   i   s   1-s   0-R   s   New data save with s    errorss	   Success: s    Fail: s	    Params: R:   t
   PARAM_SAVEs   New data savet   Oks   Error: R   (   R   R   R    R!   R'   R#   t   allRC   RF   RD   t#   configuration_check_parameter_valueRJ   t   uppert   updateR"   R$   RI   t   joint   user_add_new_actiont   usernameR   t	   Exceptiont   messageR   R,   (   R-   t   fail_countert   success_counterR   t   parameter_info_listt   parameter_dictionaryt   error_parameter_listt   success_parameter_listR/   t   parameter_valuet   parameter_namet   dt   user_action_data_shortt   user_action_data_longt   e(    (    sJ   /var/www/html/leakless-monitor/Applications/Devices/Configuration/views.pyt%   configuration_write_parameter_changesR   sH    


/3/c         C   sõ  |  j  j ƒ  rçd } d } |  j j d ƒ } y“g  } g  } i  } d } |  j j d ƒ } | t ƒ  k r› | d 7} | j i | | 6ƒ | j d | ƒ n | d 7} | j d | ƒ d }	 |  j j d ƒ }
 |
 t ƒ  k r| d 7} | j i |
 |	 6ƒ | j d |	 ƒ n | d 7} | j d |	 ƒ d	 } |  j j d
 ƒ } | t ƒ  k rƒ| d 7} | j i | | 6ƒ | j d | ƒ n | d 7} | j d | ƒ t	 j
 j d |  j j d ƒ ƒ j |   | d k rdd t | ƒ d } d t | ƒ d t | ƒ d d j | ƒ } t |  j  j d | | | ƒ t d t | ƒ d t | ƒ d d j | ƒ ƒ Sd } d t | ƒ d t | ƒ d d j | ƒ } t |  j  j d | | | ƒ t d ƒ SWqñt k
 rã} t d | j ƒ SXn
 t d ƒ Sd  S(   Ni    R   t   loc_pressurerecalculateunitt   PressureRecalculatei   s   1-t   loc_flowrecalculateunitt   FlowRecalculatet   loc_totalflowrecalculateunitt   TotalFlowRecalculatet   ids   New unit save with s    errorss	   Success: s    Fail: s	    Params: R:   t	   UNIT_SAVEs   New unit saveRT   s   Error: s   /leakless-monitor(   R   R   R    R!   t0   measure_return_recalculate_pressure_unit_optionsRX   RJ   t,   measure_return_recalculate_flow_unit_optionst2   measure_return_recalculate_total_flow_unit_optionst   LldevicelistR#   R$   RI   RY   RZ   R[   R   R\   R]   R   (   R-   R^   R_   R   Rb   Rc   Ra   t   field_name_pressuret   pressure_valuet   field_name_flowt
   flow_valuet   field_name_total_flowt   total_flow_valueRg   Rh   Ri   (    (    sJ   /var/www/html/leakless-monitor/Applications/Devices/Configuration/views.pyt,   configuration_write_recalculate_unit_changesƒ   sZ    





(/3/c         C   sB  | j  d k r/ t |  ƒ | j k r( t St Sn| j  d k rs t |  ƒ | j k sh t |  ƒ | j k  rl t St SnË | j  d k r· t |  ƒ | j k s¬ t |  ƒ | j k  r° t St Sn‡ | j  d k rû t |  ƒ | j k sð t |  ƒ | j k  rô t St SnC | j  d k r:y t j	 |  d ƒ t SWq>t
 k
 r6t SXn t Sd  S(   Nt   STRINGt   INTEGERt   DOUBLEt   ENUMt   TIMEs   %H:%M:%S(   t   typeR%   t   maxt   Falset   TrueRH   t   mint   floatt   timet   strptimet
   ValueError(   t
   paramvaluet
   param_info(    (    sJ   /var/www/html/leakless-monitor/Applications/Devices/Configuration/views.pyRV   Â   s.    ***(   R‰   t   django.shortcutsR    R   R   t   django.httpR   t   Applications.Devices.modelst   Applications.Users.viewst   Applications.Measure.viewsR4   R(   Rj   R}   RV   (    (    (    sJ   /var/www/html/leakless-monitor/Applications/Devices/Configuration/views.pyt   <module>   s   


	)		1	?