U
    +fD                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       sB   e Zd Zdd Z fddZ fddZdd fd	d

Z  ZS )CmfCustFieldc                 C   sJ  | j s
d S | jdkr0d| _d| _d| _d| _n| jdkrLd| _| j| _n| jdkrhd	| _| j| _n| jd
krd| _| j| _n| jdkrd| _| j| _n| jdkrd| _| j| _n| jdkrd| _| j| _nn| jdkrd| _| j| _nR| jdkrd| _| j| _n4| jdkr:d| _d| _d| _d| _n| jdkrVd| _| j| _n| jdkrrd| _| j| _n| jdkrd| _| j| _dg| _n| jdkrd| _| j| _d g| _n| jd!krd"| _| j| _d g| _nh| jd#krd"| _| j| _d$g| _nD| jd%kr&d"| _| j| _d&g| _n | jd'krFd(| _| j| _d)| _d S )*N)
      ZCmfM2MTZCUSTOM_CHOICE_MODELZCmfCascadeChoicer   ZCmfText   Z
CmfNumeric   ZCmfPhone   ZCmfLogin   ZCmfEmail   ZCmfUrl   Z	CmfChoice	   ZCmfChoiceInt   ZCmfMark   ZCmfDate   ZCmfDateTime   ZCmfGenericRelationZ
CmfCompany   Z	CmfPerson   ZCmfGenericM2M   ZCmfRole   ZCmfPersonGroup   ZCmfBoolF)is_newZfield_custom_type
field_typeleftZmodelZwidgetmodelsdefault)self r   ./cmf/models/cmf_cust_field.py_calc_custom_field_type   s    
















z$CmfCustField._calc_custom_field_typec              
      s   | j s.| jjrtddd | jjr.tddd |   | jdsNtddd | jstddd	d
dddddg	}t| j	dd}||@ rd| _t
 j||}| jrtt| jj   |S )NuY   Нельзя менять системное имя поля, создайте новоеT)abortuF   Нельзя менять тип поля, создайте новоеZcf_uY   Системное имя должно обязательно начинаться с cf_Zcaptionr   ZplaceholdernameZcommentr   Zvisiblereadonlychoices)
is_changed)r   r    r#   Z	cmf_alertr   r   
startswithZdirtysetkeyssupersavevarsr   Zcmf_model_namevalueZcustom_field_sync)r   argskwargsZcritical_fieldsZchanged_fieldsres	__class__r   r   r(   K   s.    
    zCmfCustField.savec                    s   |    t j||}|S )N)r   r'   _save_import)r   r+   r,   r-   r.   r   r   r0   _   s    zCmfCustField._save_importF)TEXKOM_db_deletec                   sn   t jj| |dD ]}|j|d|i| qt jj| |dD ]}|j|d|i| q:t j|d|i| d S )N)Z
cust_fieldZinclude_deletedr1   )r   ZCmfUiFormFieldlistdeleteZCmfCustFieldConfFieldr'   )r   r1   r+   r,   Zui_fieldZ
conf_fieldr.   r   r   r3   d   s
    zCmfCustField.delete)__name__
__module____qualname__r   r(   r0   r3   __classcell__r   r   r.   r   r      s   Er   )Zcmf.includeZcmf.fields.cmf_cust_fieldZcmfZfieldsZcmf_cust_fieldr   r   r   r   r   <module>   s   