U
    ed                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_global_settingsc                       sp   e Zd ZdZedd Zedd Zedd Zedd	 Zed
d Z	edd Z
 fddZdd Z  ZS )CmfGlobalSettingsuF   
    Глобальные настройки приложения
    c                 O   s   d S N clsargskwargsr   r   ./models/cmf_global_settings.pypublic_get_settings
   s    z%CmfGlobalSettings.public_get_settingsc                 O   s   d S r   r   r   r   r   r   public_list   s    zCmfGlobalSettings.public_listc                 O   s   d S r   r   r   r   r   r   
public_get   s    zCmfGlobalSettings.public_getc                 O   s   d S r   r   r   r   r   r   sdesk_get_settings   s    z$CmfGlobalSettings.sdesk_get_settingsc                 O   s   d S r   r   r   r   r   r   
sdesk_list   s    zCmfGlobalSettings.sdesk_listc                 C   s   t jjtjj dgdS )Nr   )idfields)Zmodelsr   getgZglobal_settingsr   )r   r   r   r   get_settings$   s    zCmfGlobalSettings.get_settingsc                    s   |    t j||S r   )emitsupersave)selfr	   r
   	__class__r   r   r   (   s    zCmfGlobalSettings.savec           
      C   s  ddl m} |d| j ddtjgd td}|s@i }i t_|| jj}|dkri }| jj|d	< tjottjjj|d
< d|d< d|d< d|d< | j|d< g |d< g |d< g |d< g |d< t	| dr| j
jr| j
j|d< t	| dr| jjr| jj|d< t	| dr| jjr| jj|d< |dp(g }| jrv| jddD ]4\}}|dkrVq>t| |}|j|jkrtd| j d|j  q>t|tjjrt|jts|jdk	r||jjj n*t|jtr|jD ]}||jj q|jdk	rdt|tjjrdt|jts:|jdk	r:||jjj n*t|jtrd|jD ]}||jj qN|d | q>|d | d}	| jrd}	|d |	 tt|d |d< tt|d |d< tt|d |d< tt|d |d< |tj| jj< dS )u   
        Сообщаем во фронт о необходимости обновить объект
        :return:
        r   )cmf_emit_eventzevent-z1this event DEPRECATED, use is\_changed-class_name/)	namespaceZevent_persons	emit_listNr   cmf_modified_by	parent_id	person_idplace
class_nameZrelation_personsZchanged_fieldschanged_relationsactionT)
is_changed)Zcmf_modified_atr    Zcmf_viewed_atZcmf_viewed_byZcmf_locked_atZcmf_locked_byzemit: FIXME is changed bug ..updateinsert)cmf.includer   r   r   Zcurrent_personr   r   valuer$   hasattrr!   Z
is_definedr"   r#   r'   itemsgetattrolddebug
isinstanceZcmfr   Z
CmfRelBaselistappendZ_oldextendZis_newset)
r   r   r   Zbodyr%   kvZfieldir&   r   r   r   r   ,   sr    





zCmfGlobalSettings.emit)__name__
__module____qualname____doc__classmethodr   r   r   r   r   r   r   r   __classcell__r   r   r   r   r      s   





r   N)r+   Z
cmf.fieldsr   r   r   r   r   r   <module>   s   