B
    b                 @   s   d dl mZ d dlmZ edddgZeddddgZG d	d
 d
eZG dd de	Z
G dd deZG dd deZG dd deZdS )    )
namedtuple)gettext_lazyActionTuplenameclsActionToolbarZmultiactionc               @   s^   e Zd ZdZdZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZd
ddZdd	 ZdS )ZKActionN    FTc             C   s   || _ || _|| _d | _d S )N)requestadminobj_idsZ
valid_form)selfr   r   r    r   ,G:\easytimepro\master/mysite/admin\action.py__init__&   s    zZKAction.__init__c             O   s   t dd S )Nz4subclasses of ZKAction must override action() method)NotImplementedError)r   argskwargsr   r   r   r   ,   s    zZKAction.action)NN)__name__
__module____qualname__verbose_nameshort_descriptionhelp_txtZaction_formZaction_templateaction_icon
action_urlconfirmationZconfirmation_timesZaction_confirm_passwordbatch_selectZunique_object_requiredZ	px_heightZpx_widthZvisibleZkeep_page_openr   r   r   r   r   r   r	      s$   
r	   c               @   s   e Zd ZdZdS )ActionHandleErrorzESome errors happened during handle procedure of the requested action N)r   r   r   __doc__r   r   r   r   r    0   s   r    c                   s   e Zd Zd fdd	Z  ZS )ZKModelActionNc                s@   t t| ||| | jr6| jj}|jj| jd| _nd | _d S )N)Zid__in)superr"   r   r   r   Zmodelobjectsfilter)r   r   r   r   r   )	__class__r   r   r   6   s
    zZKModelAction.__init__)NN)r   r   r   r   __classcell__r   r   )r&   r   r"   5   s   r"   c               @   s<   e Zd ZedZedZedZdZedZdZ	dd Z
d	S )
GeneralActionDeleteZ"common_action_deleteSelectedRecordZ-common_action_deleteSelectedRecordDescriptionZ)common_action_deleteSelectedRecordHelpTxtr
   Z#are_you_sure_to_delete_the_selectedTc             K   s|  ddl m} ddlm} ddlm} ddlm} |di }t|t| j	krPnFxDt
| jdg D ]2}|| | jj}|js`|dj||jd	 q`W g }	g }
x| j	D ]}yTt
|d
t
|d}||d }|d k	r|	t| w|
dj|d |  W q ||fk
rB } z |	||d|jjd W d d }~X Y qX qW t|	dkrftd|	ndjd|
dS d S )Nr   )get_error_message)ProgrammingError)DatabaseError)cacheZremove_deniedZ
cache_keysz{key}_{user_id})keyZuser_ididZpkz{obj})objz<{}>)Zfield;z|{obj},)Zmysite.admin.utilsr)   Z	django.dbr*   r+   Zdjango.core.cacher,   getlenr$   getattrr   deleter   userZis_superuserformatr.   appendstrr&   r   r    join)r   r   r)   r*   r+   r,   Zremove_non_permittedkr6   Zmsg_listr$   r/   Zobj_idZ	error_msger   r   r   r   G   s@    
,zGeneralActionDelete.actionN)r   r   r   _r   r   r   r   r   r   r   r   r   r   r   r(   ?   s   r(   c               @   s8   e Zd ZedZedZedZdZdZdZ	dd Z
d	S )
GeneralActionNewZcommon_action_newZcommon_action_newDescriptionZcommon_action_newHelpTxtr
   z	%s_%s_addFc             K   s   d S )Nr   )r   r   r   r   r   r   z   s    zGeneralActionNew.actionN)r   r   r   r=   r   r   r   r   r   r   r   r   r   r   r   r>   r   s   r>   N)collectionsr   Zdjango.utils.translationr   r=   r   r   objectr	   	Exceptionr    r"   r(   r>   r   r   r   r   <module>   s    
3