U
    },(d®  ã                   @   sR   d dl Z d dlmZ d dlmZ d dlT d dlZd dlmZ G dd„ dejƒZdS )é    N)Úurlparse)ÚLinker)Ú*)Úcmf_commentc                       s’   e Zd Z‡ fdd„Z‡ fdd„Zdd„ Zdd„ Zd	d
„ Zdddœ‡ fdd„
Zdd„ Z	dd„ Z
dd„ Zdd„ Zeedœdd„ƒZ‡ fdd„Z‡  ZS )Ú
CmfCommentc                    s   t ƒ  ¡ ddg S )NÚparentÚ
cmf_author)ÚsuperÚsave_preload_fields©Úself©Ú	__class__© ú./models/cmf_comment.pyr
      s    zCmfComment.save_preload_fieldsc                    sv   |   ddg¡ | jdkrd S | j}|s<| j ¡ r<| jj ¡ }|rltd| jj› | jjtj	jjdœ| 
¡ d tƒ  ¡ S )NÚ	log_levelr   r   zcomment-)ÚidZ	person_id)Zevent_persons)Úload_fieldsr   r   Ztree_parentÚloadZcmf_emit_eventr   ÚvalueÚgÚcurrent_personZall_relation_personsr	   Úemit)r   r   r   r   r   r      s    
þzCmfComment.emitc                 C   s(   | j r$| j j| _| j j| _| j j| _d S ©N)r   ZloginZcache_cmf_author_loginÚcodeZcache_cmf_author_codeÚnameZcache_cmf_author_namer   r   r   r   Ú_calc_cache   s    

zCmfComment._calc_cachec                 C   s   | j r| j jjdkrd S d S )NZCmfDocument)r   r   Ú
class_namer   r   r   r   Ú	_calc_doc&   s    zCmfComment._calc_docc                 C   sh   | j jstjjj| j jkrd| j jr(g | _ d| j _| j j t	j	j
t	jjd ¡ tjjjtjjjdœ¡ d S )NT©Ztz©Údatetimer   r   )ÚviewsÚis_nullr   r   r   r   ÚjsonÚ
is_changedÚappendr!   ÚnowÚtimezoneÚutcÚ	isoformatr   r   r   r   r   Ú_calc_views0   s    þzCmfComment._calc_viewsT)ÚnotifyÚauditc                   s`   |   ¡  |  ¡  |  ¡  | jdkr&d}tƒ j|d|i|—Ž}|rH|  ¡  | jr\| jj| d |S )uÑ   
        ÐŸÐµÑ€Ð²Ñ‹Ð¹ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚ Ð´Ð»Ñ Ñ‡Ð°Ñ‚Ð¾Ð² ÑÐ¾Ð·Ð´Ð°ÐµÑ‚ Ð»Ð¸Ð±Ð¾ Ñ‚Ð¾Ð¿Ð¸Ðº Ð±ÐµÐ· Ñ‡Ð°Ñ‚Ð° Ð»Ð¸Ð±Ð¾ Ñ‚Ð¾Ð¿Ð¸Ðº Ñ Ñ‡Ð°Ñ‚Ð¾Ð¼
        :param args:
        :param kwargs:
        :return:
        r   Fr-   )Zcomment)	r   r+   r   r   r	   ÚsaveÚ_calc_notifyr   Z_comment_save_hook)r   r,   r-   ÚargsÚkwargsÚresr   r   r   r.   ;   s    
zCmfComment.savec                 K   s$   | j dkr | jr | jj| jd dS )u{   
        ÐžÑ‚Ð¿Ñ€Ð°Ð²Ð»ÑÐµÐ¼ Ð¾Ð¿Ð¾Ð²ÐµÑ‰ÐµÐ½Ð¸Ðµ Ð¾ ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ñ€Ð¸Ð¸
        :param kwargs:
        :return:
        r   ©ÚtextN)r   r   Zall_place_notifyr4   ©r   r1   r   r   r   r/   N   s    zCmfComment._calc_notifyc                 C   s&   | j s| jjsd S |  ¡  | j| _d S r   )Zis_newr   r%   Z_load_perm_fieldsZperm_parentr   r   r   r   Ú_calc_perm_parentX   s    zCmfComment._calc_perm_parentc                 C   s   d S r   r   r   r   r   r   Úgen_code^   s    zCmfComment.gen_codec                 K   sœ   | j ddgd | jjrg | _tjjj| jjkr˜| jj t	j	j
t	jjd ¡ tjjjtjjjdœ¡ | jdd | jr”| jjdkr”d| j_| j ¡  dS d	S )
Nr"   zchannel_message.message_status)Zfieldsr   r    T)Z	only_dataÚreadF)r   r"   r#   r   r   r   r   r$   r&   r!   r'   r(   r)   r*   r   r.   Zchannel_messageZmessage_statusr5   r   r   r   Ú	mark_reada   s    þ
zCmfComment.mark_readr3   c                 C   s   t  | ¡} | S r   )ÚbleachÚlinkifyr3   r   r   r   r;   r   s    
zCmfComment.linkifyc                    s&   |   dg¡ |  ¡  tƒ j||Ž d S )Nzcmf_author.login)r   r   r	   Úsave_import)r   r0   r1   r   r   r   r<   w   s    zCmfComment.save_import)Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r+   r.   r/   r6   r7   r9   ÚstaticmethodÚstrr;   r<   Ú__classcell__r   r   r   r   r      s   

r   )	r!   Zurllib.parser   r:   r   Zcmf.includeZ
cmf.fieldsr   r   r   r   r   r   Ú<module>   s   