U
    ag|	                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       s8   e Zd Z fddZdd Z fddZdd Z  ZS )	CmfCustFieldConfFieldc                    s   t   dddddg S )Nnamecaptionorig_captionparent
cust_field)supersave_preload_fieldsself	__class__ )./cmf/models/cmf_cust_field_conf_field.pyr
      s    z)CmfCustFieldConfField.save_preload_fieldsc                 C   s   | j jd}|d }d }t|dkr.|d }tjj| }|sH|j| _n>t	|t
jjrptt|j j| j| _ntd| j  ddd d S )N.r      u*   Конфигурирование поля u"    не поддерживаетсяTabort)r   valuesplitlenmodelsCmfTaskfieldsr   r   
issubclasscmfZCmfRelationvarsZmodel	cmf_alert)r   field_namesZ
field_nameZfield_name_subnameZfieldr   r   r   _calc_orig_caption	   s    
z(CmfCustFieldConfField._calc_orig_captionc                    s   |    | jstddd | jrHtjj| jjsHtd| j ddd | 	  | j
rtjjdd| jgdd| jgd	d
| jggdrtd| j ddd | jrt| jjtrd| jkrtd| j ddd | j  t j||S )Nu5   Имя поля не может быть пустымTr   u   Поля с именем u    нет в системеr   z==r   idz!=)filteru   Настройка поля u,    уже есть в конфигурацииr   ua   Не правильный формат хранения значения по умолчанию u6   , используйте пример dict(value=None))
_calc_namer   r   r   r   r   r   getr   r    Zis_newr   sgetr   r!   default
isinstancedictZ
calc_cacher	   save)r   argskwargsr   r   r   r)      s    


zCmfCustFieldConfField.savec                 C   s   | j s| jsd S | jj | _ d S )N)r   r   r   r   r   r   r#   )   s    z CmfCustFieldConfField._calc_name)__name__
__module____qualname__r
   r    r)   r#   __classcell__r   r   r   r   r      s   r   )Zcmf.includeZ$cmf.fields.cmf_cust_field_conf_fieldr   r   Zcmf_cust_field_conf_fieldr   r   r   r   r   <module>   s   