U
    Gd                     @   s2   d dl Z d dlT d dlmZ G dd dejZdS )    N)*)cmf_trans_validc                       s6   e Zd Zedeed fddZ fddZ  ZS )	CmfTransValidNF)all_optionsmodels_filtersc              
      s   | dd }	| dd }
| dd }| dd }|	dkr@d}
d}|
rP|rP|dkrrt jf |||||||d	|S t|
}t||}|std
|
 d| dd |jf |||d|S )N
logic_typecmf_model_namewz_field_nameworkflow_idz2 prev_statusCmfTaskstatusZwz_value_obj)relation_field_name	object_idobject_fieldsmodels_listr   r   filteru   У модели u$    не существует поле Tabort)r   r   r   )getsuperfield_options_listZcmfutilZget_model_by_namegetattr	cmf_alert)clsr   r   r   r   r   r   r   kwargsr   r   r	   r
   ZmodelZmodel_field	__class__ "./common/models/cmf_trans_valid.pyr      s8    


z CmfTransValid.field_options_listc              
      sl  | j r| j| _| j s&| jj | _| jrj| jj d| j d| j	j d| j	 d| j
j d| j
  | _| j	dkrz | jrttj| jj W n4 tk
r } ztd| dd W 5 d }~X Y nX | j	dkrtjstd	dd | jjr| jr| jsd
| jjkrtddd | jjr2tddd | jjr^| jrXtj| jj| _nd | _t j||S )N:z, z: z4 bqluC   Ошибка! UBQL должен быть в формате python: Tr   z5 evalu   Использование bzPython недоступно в Вашей версии, обратитесь в Техническую поддержку.resultuS  Чтобы фильтр заработал - нужно присвоить значение глобальной переменной result. Возможно, Вы используете устаревший подход с использованием return. Внесите изменения в код перед сохранениемuX   Нельзя напрямую изменять поле bql, используйте ubql)Zis_newcodenameZworkflowloadZ
transitionZ
is_changedZwz_conditionZcaptionr   r   Z	auto_textZubqlastZliteral_evalZmodelsr   Zubql2bqlvalue	Exceptionr   ZconfigZBZPYTHON_ENABLEDZ	eval_codeZ	eval_fileZbqlr   save)selfargsr   er   r   r   r'   )   s:    
&
$

zCmfTransValid.save)NNNFNN)	__name__
__module____qualname__classmethodbooldictr   r'   __classcell__r   r   r   r   r      s              !r   )r$   Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   