U
    jWgy                     @   s>   d dl T d dlT d dlmZ d dlmZ G dd dejZdS )    )*)cmf_automation_crud_trigger)CmfActiveEntityc                       s0   e Zd Zedd Zdd Z fddZ  ZS )CmfAutomationCrudTriggerc                 C   s*  |j | jj krdS t|jtjkr:t	|j
jts:dS |g}dddd gdd|ggdddgg}|dkrt	|tjstd| d	d
 |jdkrdS |j
sdS |ddddg d g}t|j
dr|j
jr|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|gg t	|tr|dddd gdd|j
jgg |dddd gdd|j
jgg nJ|dkrt	|tjstd| d	d
 |j
sdS |ddddg d g}t|j
dr
|j
jr
|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|gg t	|j
tr|dddd gdd|j
jgg |dddd gdd|j
jgg n|ddddg |dkr|d d g}t|dr|jr|jjjg}d g}|j
r4|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|gg |dd|g t	|tr|dddd gdd|jgg |dddd gdd|jgg tjj|dgd	dddd d!d"d#d$gd%}d}	|D ]}
|
| d	}	q|	S )&NFORcrud_action=INZdisabledcommentuR   DEV: в crud_hook eval_type=comment передали не комментарий: Tabortr   zparent.logic_type_idzparent.activityzparent.scheme_wf
project_idlogic_type_idcmf_model_name
logic_typeZfilter_projectactivity	scheme_wfZ
attachmentuO   DEV: в crud_hook eval_type=attachment передали не вложение: parent)Zcreateupdatesave	eval_typeZordernoZ	eval_codeZ	eval_fileZeval_file_pathcall_triggercall_trigger.eval_codecall_trigger.call_triggercall_trigger.eval_filecall_trigger.eval_file_path)filterZorder_byZcache_inmemoryZfields)
class_namer   choiceskeysZcmfutilZget_model_by_ididZmodelsCmfAttachment
isinstancer   valuer   
CmfComment	cmf_alertZ	log_levelload_fieldshasattrr   r   appendr   r   r   r   listrun)clsobjr   r   Zcrud_actionsZ_filterZlogic_type_filterZproject_filterZtrigger_listZhas_chandesZtrigger r-   :./modules/automation/models/cmf_automation_crud_trigger.py	crud_hook   s     


" $

" $

   

z"CmfAutomationCrudTrigger.crud_hookc                 C   s2   |  | | jr.| ddddg | j| d S )Nr   r   r   r   )Zeval_bzpythonr   r&   r*   )selfr,   r-   r-   r.   r*   ]   s    
 zCmfAutomationCrudTrigger.runc                    s^   | j dkr"| jdkr"td d| _| jdkrBtd| j ddd	 tjsPtd
 t j||S )Nr
   Zbefore_saveu   События комментирования обрабатываются только в Методе вызова after_save. Выставлен Метод вызова after_saveZ
after_save)r$   r!   u/   Автоматизация для модели u    временно недоступна. Воспользуйтесь событием комментирования или событием добавления вложения или обратитесь в техническую поддержку.Tr   u   Использование bzPython и Автоматизации недоступно в Вашей версии, обратитесь в Техническую поддержку.)r   r   r%   r   ZconfigZBZPYTHON_ENABLEDsuperr   )r0   argskwargs	__class__r-   r.   r   d   s    
zCmfAutomationCrudTrigger.save)__name__
__module____qualname__classmethodr/   r*   r   __classcell__r-   r-   r4   r.   r      s   
Ur   N)Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   Zcommon.models.cmf_active_entityr   r   r-   r-   r-   r.   <module>   s   