U
    ²›ä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dg¡ | jr‚t| jjtjƒr‚tj| jkrpz| jj	d| j
d W q‚ tk
rl   | 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_parentÚ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_accessr	   Ú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   