U
    [SeQ	                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_attachmentc                   @   sV   e Zd Zedd ZeddddZeddddZd	d
 ZdddZdd Z	dS )CmfAttachmentc                 O   s4   | j ||}|j  |j s,tddd |d S )Nu   Нет доступа!T)abortid)createparentload_sdesk_check_accessZ	cmf_alert)clsargskwargsres r   ../modules/servicedesk/models/cmf_attachment.pysdesk_create   s
    

zCmfAttachment.sdesk_createN)fieldsc                O   sH   |sg }d|kr| d | j|d|i|}|r@tdd |}t|S )Nr   r   c                 S   s
   | j  S )N)r   r
   )cr   r   r   <lambda>       z*CmfAttachment.sdesk_list.<locals>.<lambda>)appendlistfilterr   r   r   r   r   r   r   r   
sdesk_list   s    
zCmfAttachment.sdesk_listc                O   sD   |sg }d|kr| d | j|d|i|}|r@|j s@d S |S )Nr   r   )r   getr   r
   r   r   r   r   	sdesk_get   s    
zCmfAttachment.sdesk_getc                 C   s@   |  dddg | jj}tjjs*|jdkr.dS | j r<dS d S )Nr   zparent.root_parentzparent.root_parent.logic_prefixzproject.servicedeskFT)Zload_fieldsr   root_parentgZcurrent_personZ
user_localZlogic_prefixr
   )selfr   r   r   r   sdesk_check_write)   s    
zCmfAttachment.sdesk_check_writeFc                 K   sp   dd l }tjj| j|d}|sl|rltj| jdd}| j|_tjj|j|jj	dd|_
t|d |  |S )Nr   )r   r   F)nameis_dirT)r   mkdirwrite)osZmodelsZCmfRFiler   Z
_file_namer!   r   pathdirnamevaluer   ZcmfutilZacl_set_policyZsave)r   r   r   _kwargsr%   r   r   r   r   sdesk_get_rfile1   s    zCmfAttachment.sdesk_get_rfilec                 O   s   | j dd}|j|| d S )NT)r   )r*   Zstream_write)r   r   r   Zrfiler   r   r   sdesk_upload_stream_file<   s    z&CmfAttachment.sdesk_upload_stream_file)NF)
__name__
__module____qualname__classmethodr   r   r   r    r*   r+   r   r   r   r   r      s   

r   N)Zcmf.includeZmodules.files.modelsr   r   r   r   r   r   <module>   s   