
    #:i                     Z    d dl  d dl d dlmZ d dlmZ  G d dej                        Zy)    )*)cmf_automation_crud_trigger)CmfActiveEntityc                   >     e Zd Zed        Zd Z fdZ fdZ xZS )CmfAutomationCrudTriggerc                    |j                   | j                  j                  j                         vryt        j                  |j                        }|t        j                  u r%t        |j                  j                  t              sy|g}dg ddd|ggg dg}|dk(  rt        |t        j                        st        d| d	
       |j                  dk7  ry|j                  sy|j!                  g d       d g}t#        |j                  d      r7|j                  j$                  r!|j                  j$                  j                  g}d g}|j&                  r|j&                  j                  g}|j)                  dg ddd|j                  j                  j                   gg       |j)                  dg ddd|gg       |j)                  dg ddd|gg       t        |t              r|j)                  dg ddd|j                  j*                  gg       |j)                  dg ddd|j                  j,                  gg       nf|dk(  rt        |t        j                        st        d| d	
       |j                  sy|j!                  g d       d g}t#        |j                  d      r7|j                  j$                  r!|j                  j$                  j                  g}d g}|j&                  r|j&                  j                  g}|j)                  dg ddd|j                  j                  j                   gg       |j)                  dg ddd|gg       |j)                  dg ddd|gg       t        |j                  t              r|j)                  dg ddd|j                  j*                  gg       |j)                  dg ddd|j                  j,                  gg       n|j!                  g d       |dv r|j)                  d       d g}t#        |d      r#|j$                  r|j$                  j                  g}d g}t        |t        j.                        r6|j!                  dg       |j&                  r;|j&                  j                  g}n#|j0                  r|j0                  j                  g}|j)                  dg ddd|j                   gg       |j)                  dg ddd|gg       |j)                  dg ddd|gg       |j)                  dd|g       t        |t              rF|j)                  dg ddd|j2                  gg       |j)                  dg ddd|j4                  gg       |t        j6                  u r|j8                  r|j)                  g d        t        j:                  j=                  |d!gd	g d"#      }	d}
|	D ]  }|j?                  |       d	}
 |
S )$NFOR)crud_action=Nr
   IN)disabledr   F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_namer   Nr   r   )
logic_typer   Nr   )filter_projectr   Nr   )activityr   Nr   )	scheme_wfr   Nr   
attachmentuO   DEV: в crud_hook eval_type=attachment передали не вложение: )r   	parent_idactivity_idscheme_wf_idis_dummy)createupdatesaver   	eval_type)eval_with_dummyr   Torderno)		eval_code	eval_fileeval_file_pathcall_triggercall_trigger.eval_codecall_trigger.call_triggercall_trigger.eval_filecall_trigger.eval_file_patheval_unsafe)filterorder_bycache_inmemoryfields) 
class_namer   choiceskeyscmfutilget_model_by_ididmodelsCmfAttachment
isinstanceparentvaluer   
CmfComment	cmf_alert	log_levelload_fieldshasattrr   r   appendr   r   CmfGanttTaskr   r   r   CmfTaskr   r   listrun)clsobjr
   r    modelcrud_actions_filterlogic_type_filterproject_filtertrigger_listhas_chandestriggers               :./modules/automation/models/cmf_automation_crud_trigger.py	crud_hookz"CmfAutomationCrudTrigger.crud_hook   sH   >>!3!3!;!;!@!@!BB''/ F(((CJJ<L<Lo1^#}4}dL6YZ+-)#c6#4#45nornst  }A  B}}!::OOij!%szz?3

8P8P%(ZZ%=%=%C%C$D!"VN~~"%.."6"6!7NND"?BRTWY\YcYcYiYiYtYtAuvwNND";lDRc=defNNT#@CSUY[iBjkl#/&=
CQTQ[Q[QdQd?efg&>cSVS]S]SgSg@hijL(c6#7#78klokpqy}~::OOij!%szz?3

8P8P%(ZZ%=%=%C%C$D!"VN~~"%.."6"6!7NND"?BRTWY\YcYcYiYiYtYtAuvwNND";lDRc=defNNT#@CSUY[iBjkl#**o6&=
CQTQ[Q[QdQd?efg&>cSVS]S]SgSg@hij OOef22##F+!%sO,1B1B%(%6%6%<%<$=!"VN#v223/>>&)nn&:&:%;N==&)mm&9&9%:NNND"?BRTWY\YgYgAhijNND";lDRc=defNNT#@CSUY[iBjklNNKi89#/&=
CQTQ`Q`?abc&>cSVScSc@def&3<<=>66;;[\ < 	
 # 	GKKK	     c                     | j                  |       | j                  r/| j                  g d       | j                  j                  |       y y )N)r'   r(   r)   r*   )eval_bzpythonr&   r>   rD   )selfrF   s     rO   rD   zCmfAutomationCrudTrigger.runk   sG    3 X Y!!#& rQ   c                 .    g d}t         |          |z   S )N)r
   r   r%   r    )supersave_preload_fields)rT   r/   	__class__s     rO   rW   z,CmfAutomationCrudTrigger.save_preload_fieldsr   s    
 w*,v55rQ   c                 
   | j                   dk(  r!| j                  dk(  rt        d       d| _        | j                  dv rt        d| j                   dd	       t        j
                  st        d
       t        |   |i |S )Nr   before_saveu   События комментирования обрабатываются только в Методе вызова after_save. Выставлен Метод вызова after_save
after_save)r;   r7   u/   Автоматизация для модели u    временно недоступна. Воспользуйтесь событием комментирования или событием добавления вложения или обратитесь в техническую поддержку.Tr   u   Использование bzPython и Автоматизации недоступно в Вашей версии, обратитесь в Техническую поддержку.)r
   r    r<   r   configBZPYTHON_ENABLEDrV   r   )rT   argskwargsrX   s      rO   r   zCmfAutomationCrudTrigger.save{   s    y(T^^}-L O P)DN"AAGH[H[G\ ]c dkoq && \ ^w|T,V,,rQ   )	__name__
__module____qualname__classmethodrP   rD   rW   r   __classcell__)rX   s   @rO   r   r      s,    a aF'6- -rQ   r   N)
cmf.fieldscmf.includemodules.automation.fieldsr   common.models.cmf_active_entityr   r    rQ   rO   <module>rj      s&      A ;A-:SS A-rQ   