U
    늈c                     @   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              
      sN  | 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 g }t|tj	j
r0|pt|dd }|rdd |D }n| }|D ]F}g }|tjkrdddg}|tjkrdd|g}||j|d qntd|
 d| dd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field_options_list_limitc                 S   s   g | ]}t t|qS  )getattrmodels).0Z
model_namer   r   "./common/models/cmf_trans_valid.py
<listcomp>*   s     z4CmfTransValid.field_options_list.<locals>.<listcomp>Z
user_local=workflow)r   u   DEV: FATAL У поля .u!    не указана модель)getsuperfield_options_listZcmfutilZget_model_by_namer   	cmf_alert
issubclassZcmfZfieldsZ
CmfRelBaserelated_modelsr   Z	CmfPersonZ	CmfStatusextendlist)clsr   r   r   r   r   r   r   kwargsr   r   r	   r
   ZmodelZmodel_fieldresultsr   r#   m	__class__r   r   r       sL    



z CmfTransValid.field_options_listc              
      s&  | 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t| 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 bqluB   Ошибка! BQL должен быть в формате python: Tr   z5 evalu   Использование bzPython недоступно в Вашей версии, обратитесь в Техническую поддержку.uX   Нельзя напрямую изменять поле bql, используйте ubql)Zis_newcodenamer   loadZ
transitionZ
is_changedZwz_conditionZcaptionr   r   Z	auto_textastZliteral_evalZubqlvalue
ValueErrorr!   ZconfigZBZPYTHON_ENABLEDZbqlr   r   Zubql2bqlr   save)selfargsr'   er*   r   r   r3   9   s.    
&
$

zCmfTransValid.save)NNNFNN)	__name__
__module____qualname__classmethodbooldictr    r3   __classcell__r   r   r*   r   r      s              1r   )r0   Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   