U
    6Ff                     @   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   sd  | j jsd S | js"tddd d S | j dkrHd| _d| _d| _d| _n| j dkrdd	| _| 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rd| _| j| _np| j dkrd| _| j| _nR| j dkr,d| _| j| _n4| j dkrTd| _d| _d| _d| _n| j dkrpd| _| j| _n| j dkrd| _| 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r`d*| _| j| _d+| _	d S ),Nu-   Нелья менять шаблон поляTabort)
      ZCmfM2MZ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)
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g	}t| j	dd}||@ rd| _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)r   )r   r#   r   r   r   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*   N   s.    
    zCmfCustField.savec                    s   |    t j||}|S )N)r"   r)   _save_import)r   r-   r.   r/   r0   r    r!   r2   b   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_deletedr3   )r   ZCmfUiFormFieldlistdeleteZCmfCustFieldConfFieldr)   )r   r3   r-   r.   Zui_fieldZ
conf_fieldr0   r    r!   r5   g   s
    zCmfCustField.delete)__name__
__module____qualname__r"   r*   r2   r5   __classcell__r    r    r0   r!   r      s   Hr   )Zcmf.includeZcmf.fields.cmf_cust_fieldZcmfZfieldsZcmf_cust_fieldr   r    r    r    r!   <module>   s   