U
    (zh                     @   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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 nl|d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rX|ddg |jrl|jjjg}n|j
rl|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'd(g	d)}	d}
|	D ]}|| d	}
qn|
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is_dummy)Zcreateupdatesavez
project.id	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
isinstancer   valuer   
CmfComment	cmf_alertZ	log_levelload_fieldshasattrr   r   appendr   r   r   ZCmfGanttTaskZprojectZCmfTaskr   r   listrun)clsobjr   r   ZmodelZcrud_actionsZ_filterZlogic_type_filterZproject_filterZtrigger_listZhas_chandesZtrigger r0   :./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/   r0   r0   r1   r-   k   s    
 zCmfAutomationCrudTrigger.runc                    s   dddg}t   | S )Nr   r   r   )supersave_preload_fields)r3   r   	__class__r0   r1   r5   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_ENABLEDr4   r   )r3   argskwargsr6   r0   r1   r   z   s    
zCmfAutomationCrudTrigger.save)	__name__
__module____qualname__classmethodr2   r-   r5   r   __classcell__r0   r0   r6   r1   r      s
   
cr   N)Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   Zcommon.models.cmf_active_entityr   r   r0   r0   r0   r1   <module>   s   