U
    Vc                     @   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_statusZ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 t j||S )N:z, z: z4 bqluB   Ошибка! BQL должен быть в формате python: Tr   )Zis_newcodenamer   loadZ
transitionZ
is_changedZwz_conditionZcaptionr   r   Z	auto_textastZliteral_evalZbqlvalue
ValueErrorr    r   save)selfargsr&   er)   r   r   r2   9   s    
&
$zCmfTransValid.save)NNNFNN)	__name__
__module____qualname__classmethodbooldictr   r2   __classcell__r   r   r)   r   r      s              1r   )r/   Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   