
    fi                     @    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                  }t          j        j        s|j        dk    rdS | j        j        	                                rdS d S )N)r   parent.parent
project_idzproject.servicedeskFT)
load_fieldsAPPget_cache_projectr.   gcurrent_person
user_locallogic_prefixr   r   )selfr   s     r   sdesk_check_writezCmfAttachment.sdesk_check_write5   s{    BBBCCC''88& 	'*>BW*W*W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/   r2   r3   r4   r   _pub_check_write)r6   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   )r6   r   create_kwargsr?   r   s         r   
_get_rfilezCmfAttachment._get_rfileD   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)rE   )r   r   r+   r   r   rG   stream_writer6   r   r   r   rfiles        r   sdesk_upload_stream_filez&CmfAttachment.sdesk_upload_stream_fileO   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 rI   )r   r   r+   r   r9   rG   rJ   rK   s        r   pub_upload_stream_filez$CmfAttachment.pub_upload_stream_fileW   sj    ##t~xj#IIz**,, 	4t,,D+F+++++r    )NF)__name__
__module____qualname__r   r   api_methodsclassmethodr	   r   r   r7   r:   rG   rM   rO    r    r   r   r      s         .: >
 >
 >
 
K   [ &*     [ %)     [    	 	 	 	, , ,, , , , ,r    r   N)cmf.includemodules.files.modelsr   r   rU   r    r   <module>rX      sd        / / / / / /X, X, X, X, X,N0 X, X, X, X, X,r    