U
    4Xiü  ã                   @   s>   d dl T d dlT d dlmZ d dlmZ G dd„ dejƒZdS )é    )Ú*)Úcmf_comment)ÚCmfActiveEntityc                       sB   e Zd Z‡ fdd„Zddœ‡ fdd„
Z‡ fdd„Zd	d
„ Z‡  ZS )Ú
CmfCommentc                    s   t ƒ  ¡ ddg S )Nzdeal.idÚis_dummy)ÚsuperÚsave_preload_fields)Úself©Ú	__class__© ú#./modules/crm/models/cmf_comment.pyr   	   s    zCmfComment.save_preload_fieldsT)Únotifyc                   s   | j r| j  ¡  | j  ¡  | jdkr,|  ¡  tƒ j|d|i|—Ž}| jsŒ| jdkrŒtj	 
| dd¡ tjj| ddgdD ]}tj	 
|dd¡ qv|S )	Nr   r   ZcommentÚ
after_savezparent.is_dummyzparent.parent_id)ÚparentZfieldsZ
attachment)ZdealÚloadÚemitZ	log_levelÚhandle_mention_personsr   Úsaver   ÚmodelsÚCmfAutomationCrudTriggerÚ	crud_hookZCmfAttachmentÚlist)r	   r   ÚargsÚkwargsÚresZcomment_attachr
   r   r   r      s    


zCmfComment.savec                    s<   t ƒ j||Ž}| d¡s8| j ¡  | js8tj | dd¡ |S )NZTEXKOM_db_deleteZdelete_commentr   )r   ÚdeleteÚgetr   r   r   r   r   )r	   r   r   r   r
   r   r   r      s    

zCmfComment.deletec                 C   s¤   | j jrt| jjtƒsd S tƒ }tƒ }| j jrBttj	 
| j j¡ƒ}| j jr^ttj	 
| j j¡ƒ}dd„ || D ƒ}|r | j dg¡ |D ]}tjj| jd|d q†d S )Nc                 S   s   g | ]}|j d kr|‘qS ))ZCmfPersonGroupZ	CmfPersonZCmfRole)Ú
class_name)Ú.0Úobjr   r   r   Ú
<listcomp>1   s     
 z5CmfComment.handle_mention_persons.<locals>.<listcomp>r   Zmention)Zevent_person)ÚtextZ
is_changedÚ
isinstancer   Úvaluer   ÚsetÚoldr   ZCmfTaskZ
parse_textÚnewZload_fieldsZCmfEventZdo_event)r	   Zobjs_oldZobjs_newZnew_objsr    r   r   r   r   %   s    z!CmfComment.handle_mention_persons)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   Ú__classcell__r   r   r
   r   r      s   
r   N)Zcmf.includeZ
cmf.fieldsZmodules.crm.fieldsr   Zcommon.models.cmf_active_entityr   r   r   r   r   r   Ú<module>   s   