U
    _i                     @   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                       s<   e Zd Zedd Zdd Z f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r6|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r6|dddd gdd|j
jgg |dddd gdd|j
jgg nd|dddddg |dkr|d d g}t|dr|jr|jjg}d g}t	|tjrR|dg |jrd|jjg}n|jrd|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r6|jr6|ddd	g tjj|d gd	d!d"d#d$d%d&d'd(d)g	d*}	d}
|	D ]}|| d	}
qf|
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_nameZ
logic_typeZfilter_projectactivity	scheme_wfZ
attachmentuO   DEV: в crud_hook eval_type=attachment передали не вложение: 	parent_idactivity_idscheme_wf_idis_dummy)Zcreateupdatesave	eval_typeZeval_with_dummyZordernoZ	eval_codeZ	eval_fileeval_file_pathcall_triggercall_trigger.eval_codecall_trigger.call_triggercall_trigger.eval_filecall_trigger.eval_file_pathZeval_unsafe)filterZorder_byZcache_inmemoryfields) 
class_namer   choiceskeysZcmfutilZget_model_by_ididZmodelsCmfAttachment
isinstanceparentvaluer   
CmfComment	cmf_alertZ	log_levelload_fieldshasattrr   r   appendr   r   ZCmfGanttTaskr   r   r   ZCmfTaskr   r   listrun)clsobjr   r   ZmodelZcrud_actionsZ_filterZlogic_type_filterZproject_filterZtrigger_listZhas_chandesZtrigger r2   :./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/   )selfr1   r2   r2   r3   r/   k   s    
 zCmfAutomationCrudTrigger.runc                    s   dddg}t   | S )Nr   r   r   )supersave_preload_fields)r5   r    	__class__r2   r3   r7   r   s
    z,CmfAutomationCrudTrigger.save_preload_fieldsc                    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_ENABLEDr6   r   )r5   argskwargsr8   r2   r3   r   z   s    
zCmfAutomationCrudTrigger.save)	__name__
__module____qualname__classmethodr4   r/   r7   r   __classcell__r2   r2   r8   r3   r      s
   
cr   N)Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   Zcommon.models.cmf_active_entityr   r   r2   r2   r2   r3   <module>   s   