U
    LPhC
                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       s@   e Zd Zdd Z fddZdd Z fddZd	d
 Z  ZS )CmfCustFieldConfFieldc                 C   s    | j   tjj| | j d d S )N)Zcust_field_obj)
cust_fieldloadmodelsZCmfCustFieldZcheck_filter_optionsself r	   )./cmf/models/cmf_cust_field_conf_field.py_calc_filter_options   s    
z*CmfCustFieldConfField._calc_filter_optionsc                    s   t   ddddddg S )Nnamecaptionorig_captionparentr   default)supersave_preload_fieldsr   	__class__r	   r
   r   
   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lenr   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rPtjj| jj	sPt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   r   getr   r#   Zis_newr   sgetr   r$   r   
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+   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   