B
    bEfM                 @   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      s.    


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ry | jrttj| jj W n4 tk
r } ztd| dd W d 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: T)r   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   e)r   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   