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dg | jr| jjdrt| j }rtj| jkr|z|j	d| j
d W q tk
rx   |j	d| j
d Y qX n|j	d| j
d | j
rtd| j
j d	| jji| j
 d
 t j|d|i|S )Nroot_parent_idparent	cmf_ownerCmfProject:zPPP-COM-DELETE-ALLobjzPPP-COM-DELETE-OWNzcomment-delete-id)event_personsr   )load_fieldsr   value
startswithcmfutilget_obj_by_idgcurrent_userr
   check_project_role_accessr	   CmfPermissionErrorcmf_emit_eventr   all_relation_personssuperdelete)selfr   argskwargsproject	__class__ %/opt/crm/common/models/cmf_comment.pyr      s"    
 zCmfComment.deletec                    s(   | j s| jr| jj  | _ t jf |S )N)r	   tree_parentloadr   save)r   r   r!   r#   r$   r'   $   s    zCmfComment.savec                 C   s   | j dkrd S | jr| jjdrt| j }r| jrJ|jd| jd n`| j	j
rtj| jkrz|jd| jd W q tk
r   |jd| jd Y qX n|jd| jd d S )Nr   r   zPPP-COM-ADDr   zPPP-COM-EDIT-ALLzPPP-COM-EDIT-OWN)	log_levelr   r   r   r   r   is_newr   r	   text
is_changedr   r   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   )base64datetime	mimetypescmf.include
cmf.modelsr   pathlibr   common.models.cmf_active_entityr   r   r#   r#   r#   r$   <module>   s   