U
    P{f                     @   s,   d dl T d dlmZmZ G dd deZdS )    )*)CmfModel	BaseModelc                       s2   e Zd ZdZdZdgZdd Z fddZ  ZS )CmfChatTopicUnreadMessageut   
    Не прочитанные комментарии каждого пользователя для чата
    Tcountc                 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+   D   s    zCmfChatTopicUnreadMessage.save)	__name__
__module____qualname____doc__Z	api_allowZapi_methodsr)   r+   __classcell__r'   r'   r.   r(   r      s
   8r   N)r   Z
cmf.modelsr   r   r   r'   r'   r'   r(   <module>   s   