U
    Vc                     @   s,   d dl T d dlmZmZ G dd deZdS )    )*)CmfModel	BaseModelc                       s(   e Zd ZdZdd Z fddZ  ZS )CmfChatTopicUnreadMessageut   
    Не прочитанные комментарии каждого пользователя для чата
    c                 C   sP  ddl m} ddlm} td}|s0i }i t_|| jj}|d krr| jjtj	oZtj	jjd d d | j
g g g g d
}| jjj|d< | jj|d< |dpg }| jr| jd	d
D ]\}}|dkrqt| |}|j|jkrqt|tjjr@t|jts|jd k	r||jjj n*t|jtr@|jD ]}	||	jj q*|jdk	rt|tjjrt|jts|jd k	r||jjj n*t|jtr|jD ]}	||	jj q|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 )Nr   )defaultdict)cmf_emit_event	emit_list)
idcmf_modified_by	parent_id	person_idZplace
class_namerelation_personschanged_fieldschanged_relationsactionr   r   r   T)
is_changed)Zcmf_modified_atr
   Zcmf_viewed_atZcmf_viewed_byZcmf_locked_atZcmf_locked_by.r   updateinsertr   r   )collectionsr   cmf.includer   ggetr   r	   valueZcurrent_personr   Z
chat_topicr   r   itemsgetattrold
isinstanceZcmfZfieldsZ
CmfRelBaselistappendZ_oldextendZis_newset)selfr   r   r   Zbodyr   kvZfieldir    r&   0./common/models/cmf_chat_topic_unread_message.pyemit	   sf    
      


zCmfChatTopicUnreadMessage.emitc                    s   |    t j||S )N)r(   supersave)r"   argskwargs	__class__r&   r'   r*   A   s    zCmfChatTopicUnreadMessage.save)__name__
__module____qualname____doc__r(   r*   __classcell__r&   r&   r-   r'   r      s   8r   N)r   Z
cmf.modelsr   r   r   r&   r&   r&   r'   <module>   s   