U
    Ef
                     @   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   sf   t jj|dgd}t j|d|i|}|j s<tddd |jjd|d t	
|d	 |  |jS )
Nprojectidfieldsparentu   Нет доступа!T)abortzPPP-ATT-CREATE)objwrite)modelsZCmfTaskgetr   r	   _sdesk_check_accessZ	cmf_alertr   Zcheck_project_role_accesscmfutilacl_set_policysaver   )clsr	   argskwargsZtaskres r   ../modules/servicedesk/models/cmf_attachment.pysdesk_create   s    
zCmfAttachment.sdesk_createN)r   c                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   r   r	   r   r    r   r   r   	sdesk_get    s    
zCmfAttachment.sdesk_getc                 C   s8   |  ddg tjjs"| jjdkr&dS | j r4dS d S )Nr	   zproject.logic_prefixzproject.servicedeskFT)Zload_fieldsgZcurrent_personZ
user_localr   Zlogic_prefixr	   r   )selfr   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   F)nameis_dirT)r   mkdirr   )osr   ZCmfRFiler   Z
_file_namer&   r   pathdirnamevaluer	   r   r   r   )r$   r   create_kwargsr)   r   r   r   r   
_get_rfile3   s    zCmfAttachment._get_rfilec                 O   s*   | j  sd S | jdd}|j|| d S )NT)r-   )r	   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/   r0   r   r   r   r   r      s   


r   N)Zcmf.includeZmodules.files.modelsr   r   r   r   r   r   <module>   s   