U
    c                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)	cmf_auditc                       sJ   e Zd Zdd Z fddZeejdddd ZedddZ	  Z
S )CmfAuditc                 O   s   t ddd d S )Nu>   Невозможно удалить запись Аудита!Tabort)	cmf_alertselfargskwargs r   ./models/cmf_audit.pydelete   s    zCmfAudit.deletec                    s$   | j rt j||S tddd d S )NuJ   Невозможно редактировать запись Аудита!Tr   )Zis_newsupersaver   r   	__class__r   r   r   	   s    zCmfAudit.saveT)Zsystem_taskc                  K   s\   t d|   | dd }|r4tj|dd}|| d< |sD| d | d< tjf | }|  d S )NzCelery: Logged: parentT)Zinclude_deleted
cmf_author)printgetZcmfutilZget_obj_by_idmodelsr   r   )r   r   auditr   r   r   _audit_event   s    zCmfAudit._audit_eventokN Fc	              
   C   s   |r|j j}	n tjr tjj j}	ntj j j}	|rLt|trB|}
qP|j j}
n|	}
|
	dr^|	}
d }t
jrrt
jd }|szg }| |||	|
||||d	}|rtjf |}|  d S ttjj|d d S )Nz	CmfAudit:r   )	operatecmf_model_nameresult_statusr   r   	client_ip
audit_datahtml_diff_dataparent_name)r   )idvaluegZcurrent_userr   Z	CmfPersonZsystem_person
isinstancestr
startswithZrequestZaccess_router   r   Zcmf_deferred_taskr   )r   r   r   r   r   r    r!   r"   Zcelery_skipZcmf_author_idZ	parent_idr   r   r   r   r   r   audit_event!   sD    




zCmfAudit.audit_event)r   NNNr   NF)__name__
__module____qualname__r   r   staticmethodZ
celery_appZtaskr   r)   __classcell__r   r   r   r   r      s   
       r   N)Zcmf.includeZ
cmf.fieldsr   r   r   r   r   r   <module>   s   