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                       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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   s4   t | jj| | jr0| ddg | j| d S )Nr   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   