U
    "c"                     @   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                       s8   e Zd Zedd Z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rt|jjjjg}d g}|jjr|jj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}	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_typezparent.activityzparent.scheme_wfzparent.parentZ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_levelr   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   s  t js
d S |sd S ttdd }dt_ddlm}m}m}m} t	 }i }	d|	d< ||	d< ||	d< ||	d< ||	d	< ||	d
< |
dd}zt|||	 W nb tk
r }
 zDt|
tjjr|
dd l}| }td|  d|
 d| dd W 5 d }
~
X Y nX |t_|	d S )Ndisable_raise_lazyloadTr   )datetimedate	timedeltatimezoneresultselfr(   r)   r*   r+   zreturn z	result = u<   Произошла ошибка при выполнении z: 
r   )configBZPYTHON_ENABLEDgetattrgr'   r(   r)   r*   r+   globalsreplaceexec	Exceptionr   cmfZ
base_errorZCmfAbortError	traceback
format_excr   )r-   coder#   Zprev_disable_raise_lazyloadr(   r)   r*   r+   Zglobler8   Ztracer$   r$   r%   
_exec_codeK   s4    0z#CmfAutomationCrudTrigger._exec_codec                 C   s4   |  | jj| | jr0| ddg | j| d S )Nr   r   )r=   r   r   r   r   r!   )r-   r#   r$   r$   r%   r!   j   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   r/   r0   superr   )r-   argskwargs	__class__r$   r%   r   p   s    zCmfAutomationCrudTrigger.save)	__name__
__module____qualname__classmethodr&   r=   r!   r   __classcell__r$   r$   rA   r%   r      s
   
Br   N)r7   r   Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   r   r$   r$   r$   r%   <module>   s   