U
    {ydM                     @   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              
      s4  | 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rtjstd	dd | jjrtd
dd | jjr&| jr tj| jj| _nd | _t j||S )N:z, z: z4 bqluC   Ошибка! UBQL должен быть в формате python: Tr   z5 evalu   Использование bzPython недоступно в Вашей версии, обратитесь в Техническую поддержку.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bqlr   save)selfargsr   er   r   r   r&   )   s0    
&
$

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   