U
    9$h                     @   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 n|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 nj|ddddg |dkr|d d g}t|dr|jr|jjjg}d g}t	|tjrV|ddg |jrj|jjjg}n|j
rj|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kr<|jr<|ddd	g tjj|dgd	dd d!d"d#d$d%d&gd'}	d}
|	D ]}|| d	}
qj|
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savez
project.id	eval_typeZeval_with_dummyZ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   ZCmfGanttTaskZprojectZCmfTaskZis_dummyr   listrun)clsobjr   r   ZmodelZ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*   k   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   r   s    
zCmfAutomationCrudTrigger.save)__name__
__module____qualname__classmethodr/   r*   r   __classcell__r-   r-   r4   r.   r      s   
cr   N)Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   Zcommon.models.cmf_active_entityr   r   r-   r-   r-   r.   <module>   s   