U
    ò�c`  ã                   @   sj   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ G dd	„ d	ee	ƒZd
S )é    )Úmessages)ÚUserPassesTestMixin)ÚHttpResponseRedirect)Úreverse_lazy)ÚFormView)ÚClearCacheForm)Úclear_cachec                       sH   e Zd ZeZdZedƒZdd„ Z‡ fdd„Z	dd„ Z
‡ fd	d
„Z‡  ZS )ÚClearCacheAdminViewz%clearcache/admin/clearcache_form.htmlZclearcache_adminc                 C   s
   | j jjS ©N)ÚrequestÚuserZis_superuser)Úself© r   ú4/tmp/pip-unpacked-wheel-qkvv45dw/clearcache/views.pyÚ	test_func   s    zClearCacheAdminView.test_funcc                    s   t ƒ  |||¡}|S r
   )ÚsuperÚdispatch)r   r   ÚargsÚkwargsÚresponse©Ú	__class__r   r   r      s    zClearCacheAdminView.dispatchc              
   C   st   z2|j d }t|ƒ t | jd|j d › d�¡ W n6 tk
rh } zt | jd|› �¡ W 5 d }~X Y nX t| jƒS )NÚ
cache_namezSuccessfully cleared 'z' cachez<Couldn't clear cache, something went wrong. Received error: )	Zcleaned_datar   r   Úsuccessr   Ú	ExceptionÚerrorr   Úsuccess_url)r   Úformr   Úerrr   r   r   Ú
form_valid   s    
 &zClearCacheAdminView.form_validc                    s   t ƒ jf |Ž}d|d< |S )NzClear cacheÚtitle)r   Úget_context_data)r   r   Úcontextr   r   r   r!   "   s    z$ClearCacheAdminView.get_context_data)Ú__name__Ú
__module__Ú__qualname__r   Z
form_classZtemplate_namer   r   r   r   r   r!   Ú__classcell__r   r   r   r   r	      s   	r	   N)Zdjango.contribr   Zdjango.contrib.auth.mixinsr   Zdjango.httpr   Zdjango.urlsr   Zdjango.views.genericr   Zclearcache.formsr   Zclearcache.utilsr   r	   r   r   r   r   Ú<module>   s   