
    *.+h                     @    d dl T d dlmZ  G d dej                  ZdS )    )*)cmf_attachmentc                       e Zd Zej        j        g dz   Zed             Zeddd            Zeddd            Z	d Z
d Zdd
Zd Zd ZdS )CmfAttachment)	sdesk_get
sdesk_listsdesk_createc                \   t                               |ddg          }t          j        |d|i|}|j                                        st          dd           |j                            d|           t           	                    |d	           |
                                 |j        S )
Nparentprojectidfieldsu   Нет доступа!T)abortzPPP-ATT-CREATE)objwrite)cmfutilget_obj_by_idmodelsr   r   _sdesk_check_access	cmf_alertr   check_project_role_accessacl_set_policysaver   )clsr   argskwargsr   ress         ../modules/servicedesk/models/cmf_attachment.pyr	   zCmfAttachment.sdesk_create   s    ##vx6K#LL"D????z--// 	<.d;;;;--.>C-HHHsG,,,


v    N)r   c                    |sg }d|vr|                     d            | j        |d|i|}|rt          d |          }t          |          S )Nr   r   c                 4    | j                                         S )N)r   r   )cs    r   <lambda>z*CmfAttachment.sdesk_list.<locals>.<lambda>!   s    !(6688 r    )appendlistfilter)r   r   r   r   r   s        r   r   zCmfAttachment.sdesk_list   sw      	F6!!MM(###ch6V6v66 	88 C Cyyr    c                   |sg }d|vr|                     d            | j        |d|i|}|rYt                              |j        ddg          }|j                                        sd S t                              |d           |S )Nr   r   r   r   read)r%   getr   r   	parent_idr   r   r   )r   r   r   r   r   r   s         r   r   zCmfAttachment.sdesk_get&   s      	F6!!MM(###cgt5F5f55 	0''3=(IAV'WWC:1133 t""3///
r    c                     |                      g d           t          j        j        s| j        j        dk    rdS | j        j                                        rdS d S )N)r   parent.parentzproject.logic_prefixzproject.servicedeskFT)load_fieldsgcurrent_person
user_localr   logic_prefixr   r   selfs    r   sdesk_check_writezCmfAttachment.sdesk_check_write5   sh    LLLMMM& 	$,*CG\*\*\5[3355 	4	 	r    c                     |                      ddg           t          j        j        rdS | j        j                                        rdS d S )Nr   r-   FT)r.   r/   r0   r1   r   _pub_check_writer3   s    r   pub_check_writezCmfAttachment.pub_check_write<   sV    (O4555& 	5[0022 	4	 	r    Fc                    dd l }t          j                            | j        |          }|s|rt                              | j        d          }| j        |_        t          j                            |j                            |j        j	                  d          |_
        t                              |d           |                                 |S )Nr   r   F)nameis_dirT)r   mkdirr   )osr   CmfRFiler*   
_file_namer:   r   pathdirnamevaluer   r   r   r   )r4   r   create_kwargsr=   r   s         r   
_get_rfilezCmfAttachment._get_rfileC   s    			o!!T_V!DD 	v 	//ty/??C_CF,,0M0MUY,ZZCJ""3000HHJJJ
r    c                     t                               | j        dg          }|j                                        sd S |                     d          } |j        |i | d S Nr   r   T)rC   )r   r   r+   r   r   rE   stream_writer4   r   r   r   rfiles        r   sdesk_upload_stream_filez&CmfAttachment.sdesk_upload_stream_fileN   sj    ##t~xj#IIz--// 	4t,,D+F+++++r    c                     t                               | j        dg          }|j                                        sd S |                     d          } |j        |i | d S rG   )r   r   r+   r   r7   rE   rH   rI   s        r   pub_upload_stream_filez$CmfAttachment.pub_upload_stream_fileV   sj    ##t~xj#IIz**,, 	4t,,D+F+++++r    )NF)__name__
__module____qualname__r   r   api_methodsclassmethodr	   r   r   r5   r8   rE   rK   rM    r    r   r   r      s         .: >
 >
 >
 
K   [ &*     [ %)     [    	 	 	 	, , ,, , , , ,r    r   N)cmf.includemodules.files.modelsr   r   rS   r    r   <module>rV      sd        / / / / / /W, W, W, W, W,N0 W, W, W, W, W,r    