U
    Vc	                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_trans_actionc                       s6   e Zd Zedeed fddZ fddZ  ZS )	CmfTransActionNF)all_optionsmodels_filtersc              
      s  | dd }	| dd }
|	r(|
r(|dkrJt jf |||||||d|S t|	}t||
}|sztd|	 d|
 dd g }t|tj	j
r|pt|d	d }|rd
d |D }n| }|D ].}g }|tjkrdddg}||j|d qntd|	 d|
 ddd |S )Ncmf_model_namewz_field_nameZ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_action.py
<listcomp>"   s     z5CmfTransAction.field_options_list.<locals>.<listcomp>Z
user_local=)r   u   DEV: FATAL У поля .u!    не указана модель)getsuperfield_options_listZcmfutilZget_model_by_namer   Z	cmf_alert
issubclassZcmfZfieldsZ
CmfRelBaserelated_modelsr   Z	CmfPersonextendlist)clsr	   r
   r   r   r   r   r   kwargsr   r   ZmodelZmodel_fieldresultsr   r   m	__class__r   r   r      s>    



z!CmfTransAction.field_options_listc                    sx   | j r| j| _| j s&| jj | _| jrj| jj d| j d| j	j d| j	 d| j
j d| j
  | _t j||S )N:z, z: )Zis_newcodenameZworkflowloadZ
transitionZ
is_changedZ
wz_operateZcaptionZ
logic_typer   Z	auto_textr   save)selfargsr    r#   r   r   r)   /   s    
&zCmfTransAction.save)NNNFNN)	__name__
__module____qualname__classmethodbooldictr   r)   __classcell__r   r   r#   r   r      s              (r   N)Zcmf.includeZcommon.fieldsr   r   r   r   r   r   <module>   s   