U
    Gd:                     @   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   sV  |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dd d!d"gd#}d}	|D ]}
|
| d}	q<|	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	eval_fileeval_file_pathcall_triggercall_trigger.eval_codecall_trigger.call_triggercall_trigger.eval_filecall_trigger.eval_file_path)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   sv    




   	
z"CmfAutomationCrudTrigger.crud_hookc                 C   sX   | j rtjd || | jd ntj| jj|| d | jrT| ddddg | j| d S )N)code_src_objr   )r+   r   r   r   r   )	r   ZcmfutilZexec_bzpythonr   r   r!   r   r   r%   )selfr'   r(   r(   r)   r%   M   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   W   s    zCmfAutomationCrudTrigger.save)__name__
__module____qualname__classmethodr*   r%   r   __classcell__r(   r(   r0   r)   r      s   
D
r   N)Zcmfr   Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   r   r(   r(   r(   r)   <module>   s   