U
    r[Ýcš  ã                   @   sZ   d dl Z d dlZd dlZd dlT d dlmZ d dlmZ d dlm	Z	 G dd„ dej
ƒZ
dS )é    N)Ú*)Úcmf_comment)ÚPath)ÚCmfActiveEntityc                       s6   e Zd Zddœ‡ fdd„
Z‡ fdd„Zdd„ Z‡  ZS )	Ú
CmfCommentF)Úforcec                   sÂ   |   dg¡ | jr€t| jjtjƒr€tj| jkrnz| jj	d| j
d W q€ tk
rj   | jj	d| j
d Y q€X n| jj	d| j
d | j
r¬td| j
j› d| jji| j
 ¡ d tƒ j|d|i|—ŽS )	NÚroot_parentzPPP-COM-DELETE-ALL©ÚobjzPPP-COM-DELETE-OWNzcomment-delete-Úid)Zevent_personsr   )Zload_fieldsr   Ú
isinstanceÚvalueÚmodelsÚ
CmfProjectÚgÚcurrent_userÚ	cmf_ownerÚcheck_project_role_accessÚparentÚCmfPermissionErrorZcmf_emit_eventr   Zall_relation_personsÚsuperÚdelete)Úselfr   ÚargsÚkwargs©Ú	__class__© ú./common/models/cmf_comment.pyr      s    
 þzCmfComment.deletec                    s(   | j s| jr| jj  ¡ | _ tƒ jf |ŽS )N)r   Ztree_parentÚloadr   Úsave)r   r   r   r   r   r    $   s    zCmfComment.savec                 C   s¨   | j dkrd S | jr¤t| jjtjƒr¤| jr>| jjd| jd nf| j	j
r¤tj| jkr’z| jjd| jd W q¤ tk
rŽ   | jjd| jd Y q¤X n| jjd| jd d S )Nr   zPPP-COM-ADDr	   zPPP-COM-EDIT-ALLzPPP-COM-EDIT-OWN)Z	log_levelr   r   r   r   r   Zis_newr   r   ÚtextZ
is_changedr   r   r   r   )r   r   r   r   Ú_check_project_perm*   s    
zCmfComment._check_project_perm)Ú__name__Ú
__module__Ú__qualname__r   r    r"   Ú__classcell__r   r   r   r   r      s   r   )Úbase64ZdatetimeZ	mimetypesZcmf.includeZ
cmf.modelsr   Úpathlibr   Zcommon.models.cmf_active_entityr   r   r   r   r   r   Ú<module>   s   