U
    ~Mfr                     @   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   s  | j jsd S | js"tddd d S | j dkrHd| _d| _d| _d| _n|| j dkrnd| _d| _d| _d| _nV| j d	krd
| _| 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| _n| j dkrd| _| j| _n| j dkr6d| _| j| _n| j dkrTd| _| j| _np| j dkrrd| _| j| _nR| j dkrd| _| j| _n4| j dkrd| _d| _d| _d| _n| j dkrd | _| j| _n| j d!krd"| _| j| _n| j d#krd$| _| j| _d%g| _n| j d&kr8d$| _| j| _d'g| _n| j d(kr\d)| _| j| _d'g| _nh| j d*krd)| _| j| _d+g| _nD| j d,krd)| _| j| _d-g| _n | j d.krd/| _| j| _d0| _	d S )1Nu-   Нелья менять шаблон поляTabortZchoice_cascade_multiZCmfM2MZCUSTOM_CHOICE_MODELZCmfCascadeChoiceZchoice_multitextZCmfTextstrZCmfStrintZCmfIntfloatZ
CmfNumericZphoneZCmfPhoneZloginZCmfLoginZemailZCmfEmailZurlZCmfUrlZ
choice_strZ	CmfChoiceZ
choice_intZCmfChoiceIntZtagsZCmfMarkdateZCmfDateZdatetimeZCmfDateTimeZcompanyZCmfGenericRelationZ
CmfCompanyuserZ	CmfPersonZusersZCmfGenericM2MZrolesZCmfRolegroupsZCmfPersonGroupZcheckboxZCmfBoolF)
Zfield_custom_type
is_changedis_new	cmf_alert
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dg
}t| j	dd}||@ rd| _| j
rt| j
jtrd| j
krtd| j
 ddd d S t j||}| jrtt| jj   |S )NuY   Нельзя менять системное имя поля, создайте новоеTr   uF   Нельзя менять тип поля, создайте новоеZcf_uY   Системное имя должно обязательно начинаться с cf_Zcaptionr   ZplaceholdernameZcommentr   Zvisiblereadonlychoicesrequired)r   valueua   Не правильный формат хранения значения по умолчанию u6   , используйте пример dict(value=None))r   r   r   r   r   r   
startswithZdirtysetkeysr   
isinstancer   dictsupersavevarsr   Zcmf_model_nameZcustom_field_sync)r   argskwargsZcritical_fieldsZchanged_fieldsres	__class__r   r   r#   Y   s6    
     zCmfCustField.savec                    s   |    t j||}|S )N)r   r"   _save_import)r   r%   r&   r'   r(   r   r   r*   p   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_deletedr+   )r   ZCmfUiFormFieldlistdeleteZCmfCustFieldConfFieldr"   )r   r+   r%   r&   Zui_fieldZ
conf_fieldr(   r   r   r-   u   s
    zCmfCustField.delete)__name__
__module____qualname__r   r#   r*   r-   __classcell__r   r   r(   r   r      s   Sr   )Zcmf.includeZcmf.fields.cmf_cust_fieldZcmfZfieldsZcmf_cust_fieldr   r   r   r   r   <module>   s   