B
    ^co                  @   s   d dl mZ d dl mZ d dlmZ d dlmZ e ZG dd dej	Z
ejddd	d
 Ze ZdIddZejdd ZejdJddZejdd Zejdd Zejdd Zejdd Zejdd Zejdd ZejdKdd Zejd!d" Zejd#d$ Zejd%d& Zejd'd( Zejdd)ed*d+ Zejdd)ed,d- Zed.d/d0 Z ed1d2d3 Z!ed4d5d6 Z"ed7d8d9 Z#ed:d;d< Z$ed=d>d? Z%ed@dAdB Z&edCdDdE Z'edFdGdH Z(dS )L    )forms)template)stringfilter)settingsc               @   s   e Zd Zdd Zdd ZdS )
SetVarNodec             C   s   || _ || _d S )N)var_name	var_value)selfr   r    r
   8G:\easytimepro\master/mysite/base\templatetags\common.py__init__   s    zSetVarNode.__init__c             C   s@   yt | j|}W n t jk
r0   d}Y nX ||| j< dS )N )r   ZVariabler   ZresolveZVariableDoesNotExistr   )r	   contextvaluer
   r
   r   render   s    

zSetVarNode.renderN)__name__
__module____qualname__r   r   r
   r
   r
   r   r      s   r   set)namec             C   s0   |  }t|dk rtdt|d |d S )z$
    {% set some_var = '123' %}
       zA'set' tag must be of the form: {% set <var_name> = <var_value> %}      )Zsplit_contentslenr   ZTemplateSyntaxErrorr   )parsertokenpartsr
   r
   r   set_var    s    
r   Tc             C   sZ   t | jjtj}dg}| jjr(|d dd|i}|rH| j|d}n| j|dd}|S )Nzlayui-form-labelrequiredclass )attrs)r!   Zlabel_suffix)	
isinstancefieldwidgetr   ZCheckboxInputr   appendjoin	label_tag)r#   
has_suffixZis_checkboxclassesr!   r'   r
   r
   r   r'   /   s    
r'   c             C   s   d}t t| rtt| }|S )Nr   )hasattrr   getattr)r   resultr
   r
   r   get_settings_param<   s    

r-   c             C   s&   y| t | S  tk
r    d S X d S )N)int	Exception)Z	data_listindexr
   r
   r   get_list_valueE   s    r1   c             C   sD   ddl m} t| }tj}|dkr,td S || |kr<dS dS d S )Nr   )MODS_TO_MODULEZENABLE_WDMSZ
ENABLE_ATTTF)Zmysite.admin.constr2   strr   ZSALE_MODULEget_sale_param)r   r2   modZenable_listr
   r
   r   r4   M   s    
r4   c             C   s   t jS )N)r   ZTHAILAND)r   r
   r
   r   thailandZ   s    r6   c              C   s   ddl m}  | jr| jS | jS )Nr   )r   )django.confr   ZCLOUD_VERSIONZINTELLIGENTTIME_MAPS_APIZEASYTIMEPRO_MAPS_API)r   r
   r
   r   MAPS_API_KEY_   s    r8   c              C   s   ddl m}  tj dkr>d}| d}t|dkrd|}ntj dkrtd}| d}t|dkr|d|7 }n~tj d	krd
}| d}t|dkr|d d}d|}n>tj dkrd}| d}t|dkrd|}ntj  }|S )Nr   )p_query_oneZ
postgresqlZ
PostgreSQLzSELECT version();r    ZmysqlzMySQL Z
sql_serverz
SQL ServerzSELECT @@VERSION;
ZoracleZOraclezSELECT * FROM V$VERSION;)	Zmysite.sql_utilsr9   r   ZDATABASE_ENGINElowerr   r&   splitupper)r9   ZdatabaseZdbZ
db_detailsr
   r
   r   
db_versiong   s0    r>   c             C   s   t | ddS )NF)r(   )r'   )r#   r
   r
   r   layui_label_tag   s    r?   c             C   sV   | rNt | rNd}| jr.d}|j| j| jd}nd}|jt| |  || jdS dS d S )Nzz<div class="layui-form-item field-{field_name}">{label_tag}<div class="layui-input-inline">{widget}</div>{help_text}</div>a8  <a href="#" onclick="tipsPrompt(this);" class="fa fa-info-circle fa-lg fa-fw" aria-hidden="true" edbox data-box-target="#{field_name}_tips" style="padding-top: 8px;" title="{help_text}"></a><div class="target-box" style="display: none;"><div id="{field_name}_tips" style="display: block;">{help_text}</div></div>)
field_name	help_textr   )r'   r$   rA   r@   )r   rA   formatr   r?   	as_widget)r#   
field_htmlrA   r
   r
   r   layui_item_field   s    
rE   Nc             C   s@   d}| t| |  }|d kr$|S |d |d |S d S )Nzf<div class="layui-form-item" style="display: none;">{0}<div class="layui-input-inline">{1}</div></div>z<{}z<{} lay-ignore)rB   r?   rC   replace)r#   Z
ignore_tagrD   r,   r
   r
   r   layui_item_field_ignore   s
    rG   c             C   s   d}| t| |  S )NzL<div class="layui-inline">{0}<div class="layui-input-inline">{1}</div></div>)rB   r?   rC   )r#   rD   r
   r
   r   layui_inline_field   s    rH   c             C   s   d}| |  S )NzI<div class="layui-inline"><div class="layui-input-inline">{0}</div></div>)rB   rC   )r#   rD   r
   r
   r   layui_inline_no_label_field   s    rI   c             C   s*   t | dd}|dr"|dd}d| S )NF)r(   r   r   z%s)r'   __contains__rF   )r#   r,   r
   r
   r   field_as_label_tag_no_asterisk   s    
rK   c             C   s   | dkS )N)ZpdfZxlsr
   )Zexport_styler
   r
   r   available_style   s    rL   )Zis_safec             C   sZ   dd l }ddlm} || } |jd|jd}x(|| D ]}| | |d} q8W | S )Nr   )	force_strz((['"]).*?\2))flagsr   )redjango.utils.encodingrM   compileIfinditerrF   group)r   rO   rM   patternmatchr
   r
   r   stripe_unicode_prefix   s    rW   c             C   s   dd l }ddlm} || } |jd|jd}|d}|d}x(|| D ]}| | |d} qLW x*|| D ]}| | |  } qvW x*|| D ]}| | |  } qW | dd	} t	| S )
Nr   )rM   z(?<=:)\s*(\d+)\s*L)rN   z(?<=:)\s*(False|True)\s*(?=,)z^\s*(False|True)\s*$r   NoneZnull)
rO   rP   rM   rQ   rR   rS   rF   rT   r;   rW   )r   rO   rM   Zdigit_patternZbool_patternZsingle_bool_patternrV   r
   r
   r   py_dict_to_js   s    

rY   z#layui/includes/layui_form_item.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_form_item   s    rZ   z layui/includes/layui_inline.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_inline   s    r[   zlayui/includes/layui_mid.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   	layui_mid   s    r\   z"layui/includes/layui_checkbox.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_checkbox   s    r]   z layui/includes/layui_switch.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_switch   s    r^   z3att/timeinterval/widgets/layui_inline_duration.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_inline_duration   s    r_   z'layui/includes/layui_inline_switch.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_inline_switch  s    r`   z'layui/includes/layui_inline_hidden.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_inline_hidden  s    ra   z.layui/includes/layui_inline_without_label.htmlc             C   s   d| iS )Nr#   r
   )r#   r
   r
   r   layui_inline_without_label  s    rb   )T)r   )N))Zdjangor   r   Zdjango.template.defaultfiltersr   r7   r   LibraryregisterZNoder   tagr   r'   filterr-   r1   r4   r6   Z
simple_tagr8   r>   r?   rE   rG   rH   rI   rK   rL   rW   rY   Zinclusion_tagrZ   r[   r\   r]   r^   r_   r`   ra   rb   r
   r
   r
   r   <module>   sH   
	


