U
    f                     @   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  ZS )CmfCustFieldc                 C   s&  | 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| _nf| jdkrd| _| j| _nJ| jdkrd| _| j| _n.| jdkrd| _| j| _n| jdkr8d| _d| _d| _d| _n| jdkrTd| _| j| _n| jdkrpd| _| j| _n| jdkrd| _| j| _dg| _n| jdkrd| _| j| _dg| _nj| jd krd!| _| j| _dg| _nF| jd"kr d!| _| j| _d#g| _n"| jd$kr"d!| _| j| _d%g| _d S )&N)
      ZCmfM2MTZCUSTOM_CHOICE_MODELr   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)is_newZfield_custom_type
field_typeleftZmodelZwidgetmodels)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commentdefaultZ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'   G   s.    
    zCmfCustField.savec                 O   sD   t jj| dD ]}|j|| qt jj| dD ]}|j|| q.d S )N)Z
cust_field)r   ZCmfUiFormFieldlistdeleteZCmfCustFieldConfField)r   r*   r+   Zui_fieldZ
conf_fieldr   r   r   r0   [   s    zCmfCustField.delete)__name__
__module____qualname__r   r'   r0   __classcell__r   r   r-   r   r      s   Ar   )Zcmf.includeZcmf.fields.cmf_cust_fieldZcmfZfieldsZcmf_cust_fieldr   r   r   r   r   <module>   s   