U
    -gU                     @   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                   @   sL   e Zd ZdZejejddd dddZej	j
jddg 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_acllikepublic_likec                 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)selfr   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   r       s
    zCmfLikeMixin.public_likeN)__name__
__module____qualname__Zabstractr   ZFieldZCmfLikesr   cmfmodels	CmfEntityZapi_methodsr   r   r   r   r   r   r      s   
  r   N)r   Zcmf.includer   r   r   r   r   r   r   r   r   <module>   s   