B
    if                 @   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| _nZ| 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| _nt| j dkrrd| _| j| _nV| j dkrd| _| j| _n8| 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| _nl| j d+krd*| _| j| _d,g| _nH| j d-krd*| _| j| _d.g| _n$| j d/krd0| _| j| _d1d2i| _	dS )3u-   DEPRECATED не копировать
        Nu-   Нелья менять шаблон поля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CmfMarkZdateZCmfDateZdatetimeZCmfDateTimeZcompanyZCmfGenericRelationZ
CmfCompanyuserZ	CmfPersonZusersZCmfGenericM2MZrolesZCmfRolegroupsZCmfPersonGroupZcheckboxZCmfBoolvalueF)
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   Нельзя менять системное имя поля, создайте новоеT)r   uF   Нельзя менять тип поля, создайте новоеZcf_uY   Системное имя должно обязательно начинаться с cf_Zcaptionr   Zplaceholdernamecommentr   Zvisiblereadonlychoicesrequired)r   r   ua   Не правильный формат хранения значения по умолчанию 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"   [   s*    
zCmfCustField.savec                s   |    t j||}|S )N)r   r!   _save_import)r   r$   r%   r&   )r'   r   r   r(   r   s    zCmfCustField._save_importF)TEXKOM_db_deletec               sv   x,t jj| |dD ]}|j|d|i| qW x,t jj| |dD ]}|j|d|i| q@W 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_field)r'   r   r   r+   w   s
    zCmfCustField.delete)__name__
__module____qualname__r   r"   r(   r+   __classcell__r   r   )r'   r   r      s   Ur   )Zcmf.includeZcmf.fields.cmf_cust_fieldZcmfZfieldsZcmf_cust_fieldr   r   r   r   r   <module>   s   