U
    *Fd                     @   s>   d dl mZ d dlT d dlT d dlmZ G dd dejZdS )    )fields)*)cmf_automation_crud_triggerc                       s0   e Zd Zedd Zdd Z fddZ  ZS )CmfAutomationCrudTriggerc              
   C   sN  |j dkrdS |dkr|ddddg |dkr<d	|g}n|g}d g}|jrZ|jjjg}d g}|jrr|jjjg}d
ddd gdd|j ggd
ddd gdd|ggd
ddd gdd|jggd
ddd gdd|jggd
ddd gdd|ggd
ddd gdd|ggdd|gdddgg}nt|t	j
s(td| dd |jdkr8dS |jsDdS |ddddg d g}|jjrr|jjjg}d g}|jr|jjg}d
ddd gdd|jjj ggd
ddd gdd|ggd
ddd gdd|jjggd
ddd gdd|jjggd
ddd gdd|ggdd|gdddgg}t	jj|dgddddgd}d}	|D ]}
|
| d}	q4|	S ) N)ZCmfTaskZCmfDocumentZCmfDealZCmfList
CmfCommentFcomment
logic_typeparentactivity	scheme_wf)ZcreateupdatesaveORZcmf_model_name=INZprojectcrud_action	eval_typeZdisableduR   DEV: в crud_hook eval_type=comment передали не комментарий: T)abortr   zparent.logic_type_idzparent.activityzparent.scheme_wfroot_parent_idZorderno	eval_codecall_triggercall_trigger.eval_codecall_trigger.call_trigger)filterZorder_byr   )
class_nameload_fieldsr   idvaluer	   r
   r   
isinstanceZmodelsr   	cmf_alertZ	log_levelZlogic_type_idr   r   listrun)clsobjr   r   Zcrud_actionsZlogic_type_filterZproject_filterr   Ztrigger_listZhas_chandesZtrigger r$   :./modules/automation/models/cmf_automation_crud_trigger.py	crud_hook   sj    






z"CmfAutomationCrudTrigger.crud_hookc                 C   s8   t j| jj|| d | jr4| ddg | j| d S )N)Zcode_src_objr   r   )ZcmfutilZexec_bzpythonr   r   r   r   r!   )selfr#   r$   r$   r%   r!   K   s    zCmfAutomationCrudTrigger.runc                    s>   | j dkr"| jdkr"td d| _tjs0td t j||S )Nr   Zbefore_saveu   События комментирования обрабатываются только в Методе вызова after_save. Выставлен Метод вызова after_saveZ
after_saveu   Использование bzPython и Автоматизации недоступно в Вашей версии, обратитесь в Техническую поддержку.)r   r   r   ZconfigZBZPYTHON_ENABLEDsuperr   )r'   argskwargs	__class__r$   r%   r   Q   s    zCmfAutomationCrudTrigger.save)__name__
__module____qualname__classmethodr&   r!   r   __classcell__r$   r$   r+   r%   r      s   
Br   N)Zcmfr   Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   r   r$   r$   r$   r%   <module>   s   