B
    @DbY  ã               @   s$   d dl Z dd„ Zdd„ Zdd„ ZdS )é    Nc                 s4   ddl m‰ ddlm‰m‰  ‡ ‡‡‡‡fdd„}|S )a  
    Registers the given model(s) classes and wrapped ModelAdmin class with
    admin site:

    @register(Author)
    class AuthorAdmin(admin.ZKModelAdmin):
        pass

    A kwarg of `site` can be passed as the admin site, otherwise the default
    admin site will be used.
    r   )ÚZKModelAdmin)Úzk_siteÚZKAdminSitec                sN   ˆst dƒ‚ˆ dˆ¡}t|ˆ ƒs*t dƒ‚t| ˆƒs<t dƒ‚|jˆ| d | S )Nz.At least one model must be passed to register.Zsitezsite must subclass ZKAdminSitez)Wrapped class must subclass ZKModelAdmin.)Úadmin_class)Ú
ValueErrorÚpopÚ
isinstanceÚ
issubclassÚregister)r   Z
admin_site)r   r   ÚkwargsÚmodelsr   © ú0G:\easytimepro\master/mysite/admin\decorators.pyÚ_model_admin_wrapper   s    

z&register.<locals>._model_admin_wrapper)Zmysite.admin.kernelr   Zmysite.admin.sitesr   r   )r   r   r   r   )r   r   r   r   r   r   r
   	   s    r
   c              C   s   dd l } t|   ¡ d ƒS )Nr   iè  )ÚtimeÚint)r   r   r   r   Ú_default_stamp,   s    r   c                s,   dt i‰ tˆtjƒrˆg‰‡ ‡fdd„}|S )NZstampc                s&   dd l }| ˆ ¡‡‡ ‡fdd„ƒ}|S )Nr   c                sD   t ˆtˆ  ¡ ƒ ƒ}i }x|D ]}ˆ | ||< qW ˆ| |f|ž|ŽS )N)ÚsetÚlistÚkeys)ZrequestÚargsr   Z
avail_keysÚcontextÚkey)Údefault_contextÚfuncÚkey_listr   r   Úinner<   s
    
z6inject_default_context.<locals>.wrapper.<locals>.inner)Ú	functoolsÚwraps)r   r   r   )r   r   )r   r   Úwrapper9   s    z'inject_default_context.<locals>.wrapper)r   r   ÚsixZstring_types)r   r   r   )r   r   r   Úinject_default_context1   s
    r!   )r    r
   r   r!   r   r   r   r   Ú<module>   s   #