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¡rŒt | j¡ }rŒtj| jkr|z|j	d| j
d W qŒ tk
rx   |j	d| j
d Y qŒX n|j	d| j
d | j
r¸t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)Zevent_personsr   )Zload_fieldsr   ÚvalueÚ
startswithÚcmfutilÚget_obj_by_idÚgÚcurrent_userr
   Úcheck_project_role_accessr	   ÚCmfPermissionErrorZcmf_emit_eventr   Zall_relation_personsÚsuperÚdelete)Úselfr   ÚargsÚkwargsÚproject©Ú	__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ª| jj d¡rªt | j¡ }rª| jrJ|jd| jd n`| j	j
rªtj| jkršz|jd| jd W qª tk
r–   |jd| jd Y qªX n|jd| jd d S )Nr   r   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   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   