
    ț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 rSt        |j                  j                  t              s/t        |j                  j                  t        j                        sy|g}dg ddd|ggg dg}|dv 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              rn|j)                  dg ddd|j                  j*                  gg       |j)                  dg ddd|j                  j,                  gg       n|dv rMt        |t        j                        st        d| d	
       |j                  syd}	|j                  j                  }
t        |j                  j                  t        j                        r|j                  j                  }|j.                  s|j0                  sy|j0                  j                  j3                  d      d   | j                  j                  j                         vryt        j5                  |j0                  g d      }
d	}	n|
j!                  g d       d g}t#        |
d      r#|
j$                  r|
j$                  j                  g}d g}|
j&                  r|
j&                  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       t        |
t              rF|j)                  dg ddd|
j6                  gg       |j)                  dg ddd|
j8                  gg       |	r|j)                  g d       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|j6                  gg       |j)                  dg ddd|j8                  gg       |t        j<                  u r|j.                  r|j)                  g d$       t        j>                  jA                  |d%gd	g d&'      }d}|D ]  }|jC                  |       d	} |S )(NFOR)crud_action=Nr
   IN)disabledr   F)commentdelete_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   )
attachmentdelete_attachmentuO   DEV: в crud_hook eval_type=attachment передали не вложение: :)r   activity_idscheme_wf_idr   )fields)eval_on_attachment_via_commentr   T)r   	parent_idr   r   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_inmemoryr   )"
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   r!   r    splitget_obj_by_idr   r   CmfGanttTaskCmfTaskr   listrun)clsobjr
   r%   modelcrud_actions_filterlogic_type_filterproject_filter%eval_on_attachment_via_comment_filter
filter_obj_comment_objtrigger_listhas_chandestriggers                  :./modules/automation/models/cmf_automation_crud_trigger.py	crud_hookz"CmfAutomationCrudTrigger.crud_hook   s	   >>!3!3!;!;!@!@!BB''/ F(((CJJ<L<Lo1^cjj..0A0AB#}4}dL6YZ+-77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??c6#7#78klokpqy}~::491))J#****F,=,=>"zz//((0F0F ))//55c:1=SEWEWE_E_EdEdEff $22<3I3I  SQ2  R
8<5&&'ef!%z?3
8P8P%/%=%=%C%C$D!"VN$$","7"7"="=!>NND"?BRTWYcYnYnAopqNND";lDRc=defNNT#@CSUY[iBjkl*o6&=
CQ[QgQg?hij&>cS]SjSj@klm4LM 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+   rB   rJ   )selfrL   s     rX   rJ   zCmfAutomationCrudTrigger.run~   sG    3 X Y!!#& rZ   c                 .    g d}t         |          |z   S )N)r
   r   r*   r%   )supersave_preload_fields)r]   r   	__class__s     rX   r`   z,CmfAutomationCrudTrigger.save_preload_fields   s    
 w*,v55rZ   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?   r;   u/   Автоматизация для модели u    временно недоступна. Воспользуйтесь событием комментирования или событием добавления вложения или обратитесь в техническую поддержку.Tr   u   Использование bzPython и Автоматизации недоступно в Вашей версии, обратитесь в Техническую поддержку.)r
   r%   r@   r   configBZPYTHON_ENABLEDr_   r$   )r]   argskwargsra   s      rX   r$   zCmfAutomationCrudTrigger.save   s    y(T^^}-L O P)DN"AAGH[H[G\ ]c dkoq && \ ^w|T,V,,rZ   )	__name__
__module____qualname__classmethodrY   rJ   r`   r$   __classcell__)ra   s   @rX   r   r      s,    t tl'6- -rZ   r   N)
cmf.fieldscmf.includemodules.automation.fieldsr   common.models.cmf_active_entityr   r    rZ   rX   <module>rs      s&      A ;T-:SS T-rZ   