U
    @d                     @   s8   d dl m Z  d dlT d dlmZ G dd dejjZdS )    )copy)*)fieldsc                   @   s:   e Zd ZdZejejddd dddZdd Zd	d
 Z	dS )CmfLikeMixinTu   Нравитсяc                   C   s   g S N r   r   r   ./cmf/fields/cmf_like_mixin.py<lambda>	       zCmfLikeMixin.<lambda>F)ZcaptiondefaultZnullableZno_aclc                 O   s   |  dg t| jjD ]T}|d |d kr|d |d kr`| j| | jdd | jj  S | j| q| j| | jdd | jjS )u`   
        Функция враппер для контроля уникальности
        likesZperson_loginZemojiT)Z	only_data)Zload_fieldsr   r   valueremoveZsaveappend)selflikeargskwargsvr   r   r   r      s    zCmfLikeMixin.likec                 O   s8   z| j   W n tk
r$   Y d S X | j|f||S r   )parentZ_acl_check_readZCmfPermissionErrorr   )r   r   r   r   r   r   r   public_like   s
    zCmfLikeMixin.public_likeN)
__name__
__module____qualname__Zabstractr   ZFieldZCmfLikesr   r   r   r   r   r   r   r      s   
  r   N)r   Zcmf.includeZcmfr   ZmodelsZ	CmfEntityr   r   r   r   r   <module>   s   