B
    Ob	
                 @   s   d dl mZ d dlmZ d dlmZ d dlZd dlmZ d dl	m
Z
 d dlmZmZ e Zejdd	d
d Zejdd ZeeZejdd	dd ZG dd dejZejdddd Zejddedd Zejdddd ZdS )    )template)Library)stringfilterN)	force_str)	mark_safe)staticvendorT)Ztakes_contextc             O   s   ddl m} d}| dd}|s$dS g }d| }|||}	t|	rt|	d|kr|	| |f||}
|
rt|
tjr|	|
 |rt
d|S dS d S )	Nr   )import_stringz%mysite.admin.xadmin.filters_plugin.{}Zhas_filtersF zblock_%s__name__)Zdjango.utils.module_loadingr	   getformatcallablegetattr
isinstancesixZstring_typesappendr   join)contextZ
block_nameargskwargsr	   Zimport_pathZ
has_filterZnodesmethod_nameZ
block_funcresult r   =G:\easytimepro\master/mysite/base\templatetags\xadmin_tags.py
view_block   s    
r   c             C   s   d| j | j|f S )Nzxadmin:%s_%s_%s)Z	app_label
model_name)valueargr   r   r   admin_urlname(   s    r   c             G   s   t |  S )N)util_vendorrender)r   Ztagsr   r   r   r   /   s    r   c               @   s    e Zd ZdZdd Zdd ZdS )BlockcaptureNodezFhttps://chriskief.com/2013/11/06/conditional-output-of-a-django-block/c             C   s   || _ || _d S )N)nodelistvarname)selfr#   r$   r   r   r   __init__7   s    zBlockcaptureNode.__init__c             C   s   | j |}t||| j< dS )Nr
   )r#   r!   strr$   )r%   r   outputr   r   r   r!   ;   s    zBlockcaptureNode.renderN)r   
__module____qualname____doc__r&   r!   r   r   r   r   r"   4   s   r"   Zblockcapture)namec             C   sR   y|j d d\}}W n tk
r4   tdY nX | d}|   t||S )N   z-'blockcapture' node requires a variable name.)Zendblockcapture)contentssplit
ValueErrorr   ZTemplateSyntaxErrorparseZdelete_first_tokenr"   )parsertokenZtag_namer   r#   r   r   r   do_blockcaptureA   s    
r4   )Zis_safec             C   s(   ddl m} tjr| d} t|| S )zusing standard base64 encoder   )standard_b64encodezutf-8)base64r5   r   ZPY3encoder   )r   r5   r   r   r   base64_encodeM   s    
r8   c             C   s   t | jjjS )zusing standard base64 encode)r   ZmodelZ_metar   )specr   r   r   r   W   s    r   )Zdjangor   Zdjango.templater   Zdjango.template.defaultfiltersr   r   Zdjango.utils.encodingr   Zdjango.utils.safestringr   Zmysite.admin.xadmin.utilr   r   r    registerZ
simple_tagr   filterr   ZNoder"   tagr4   r8   r   r   r   r   r   <module>   s    

	