
    ch                     D    d dl  d dlmZ  G d dej                        Zy)    )*)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y)CmfAttachment)	sdesk_get
sdesk_listsdesk_createc                N   t         j                  |ddg      }t        j                  |d|i|}|j                  j                         st        dd       |j                  j                  d|       t         j                  |d	       |j                          |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""D???zz--/.d;--.>C-HsG,
vv    N)r   c                    |sg }d|vr|j                  d        | j                  |d|i|}|rt        d |      }t        |      S )Nr   r   c                 6    | j                   j                         S )N)r   r   )cs    r   <lambda>z*CmfAttachment.sdesk_list.<locals>.<lambda>!   s    !((668 r    )appendlistfilter)r   r   r   r   r   s        r   r   zCmfAttachment.sdesk_list   sY     F6!MM(#chh6V6v68C Cyr    c                   |sg }d|vr|j                  d        | j                  |d|i|}|rTt        j                  |j                  ddg      }|j
                  j                         sy t        j                  |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(#cggt5F5f5''3==(IAV'WC::113""3/
r    c                    | j                  g d       t        j                  | j                        }t        j
                  j                  s|j                  dk7  ry| j                  j                  j                         ryy )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   sc    BC''8&&'*>*>BW*W[[335 6r    c                     | j                  ddg       t        j                  j                  ry| j                  j                  j                         ryy )Nr   r-   FT)r/   r2   r3   r4   r   _pub_check_write)r6   s    r   pub_check_writezCmfAttachment.pub_check_write=   sE    (O45&&[[002 3r    c                    dd l }t        j                  j                  | j                  |      }|s|rt        j                  | j
                  d      }| j                  |_        t        j                  j                  |j                  j                  |j                  j                        d      |_
        t        j                  |d       |j                          |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    oo!!T__V!Dv//tyy/?C__CF,,0MUY,ZCJ""30HHJ
r    c                     t         j                  | j                  dg      }|j                  j	                         sy | j                  d      } |j                  |i | y 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   sU    ##t~~xj#Izz--/t,D+F+r    c                     t         j                  | j                  dg      }|j                  j	                         sy | j                  d      } |j                  |i | y rI   )r   r   r+   r   r9   rG   rJ   rK   s        r   pub_upload_stream_filez$CmfAttachment.pub_upload_stream_fileW   sU    ##t~~xj#Izz**,t,D+F+r    )NF)__name__
__module____qualname__r   r   api_methodsclassmethodr	   r   r   r7   r:   rG   rM   rO    r    r   r   r      sx     ..:: >
 
K   &*   %)  	,,r    r   N)cmf.includemodules.files.modelsr   r   rU   r    r   <module>rX      s     /X,N00 X,r    