B
    Zf
                 @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_attachmentc               @   sh   e Zd Zejjdddg 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 )CmfAttachment	sdesk_get
sdesk_listsdesk_createc            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.pyr      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   r      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   r   r   r   r   r   &   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_write2   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	   mkdirr   )osr   ZCmfRFiler   Z
_file_namer$   r	   pathdirnamevaluer   r   r   r   )r"   r
   createZ_kwargsr'   r   r   r   r   
_get_rfile9   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_fileD   s    
z&CmfAttachment.sdesk_upload_stream_file)NF)__name__
__module____qualname__r   r   Zapi_methods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   