U
    ܌ft                     @   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 dkrdS t|jtjkr2t|jjt	s2dS |dkrJt|tj
sZtd| dd |jdkrhdS |jsrd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|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}n|dkr\t|tjstt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|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}n|ddddg |dkrd|g}n|g}d g}|jr|jjjg}d g}|jr|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}tjj|dgdddd d!d"d#d$d%gd&}d}	|D ]}
|
| d}	q||	S )'N)ZCmfTaskZCmfDocumentZCmfDealZCmfList
CmfCommentCmfAttachmentFcommentuR   DEV: в crud_hook eval_type=comment передали не комментарий: Tabortr   zparent.logic_type_idzparent.activityzparent.scheme_wf
project_idlogic_type_idORcmf_model_name=
logic_typeINactivity	scheme_wfZfilter_projectcrud_actionZdisabledZ
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_nameZcmfutilZget_model_by_ididZmodelsr   
isinstancer   valuer   r   	cmf_alertZ	log_levelload_fieldshasattrr   r   r   r   r   r   listrun)clsobjr   r   Zlogic_type_filterZproject_filterr   Zcrud_actionsZ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'   h   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   )r-   argskwargs	__class__r*   r+   r   o   s    
zCmfAutomationCrudTrigger.save)__name__
__module____qualname__classmethodr,   r'   r   __classcell__r*   r*   r1   r+   r      s   
`r   N)Z
cmf.fieldsZcmf.includeZmodules.automation.fieldsr   Zcommon.models.cmf_active_entityr   r   r*   r*   r*   r+   <module>   s   