
    *.+hv                     H    d dl Z d dlT d dlmZ  G d dej                  ZdS )    N)*)cmf_documentc                        e Zd Zej        j        g dz   Zd Zeddd            Zeddd            Z	ed             Z
e	 	 d
 fd		            Z xZS )CmfDocument)	sdesk_get
sdesk_listsdesk_macros_page_tree_getc                     |                      dg           | j        sdS | j                            d| j        d          S )NprojectFPPP-PR-BROWSEobjraise_error)load_fieldsr   check_project_role_access)selfs    ,./modules/servicedesk/models/cmf_document.py_sdesk_check_accesszCmfDocument._sdesk_check_access   sG    )%%%| 	5|55o4<ej5kkk    Nfilterc                4   g d}g d}t           j                            dg           t           j        j        r^t           j        j        j        rHt
          j                            dgddddggd	dt           j        t           j        j        ggg
          }n7t
          j                            dgddddggd	dt           j        ggg
          }ddd |D             g}g }|                    d||g           t
          j	                            |          }	t          j        d |	          }
t          |
          }g }t
          j                            |dd|g|g
          D ]2}t                              |d           |                    |           3|S )N)namecodetext)servicedesk_public=Tzcompany.servicedesk_allowparentzproject_role.codeINzsdesk-client:defaultzsdesk-agent:defaultmembers)fieldsr   idc                     g | ]	}|j         
S  )	parent_id).0ps     r   
<listcomp>z*CmfDocument.sdesk_list.<locals>.<listcomp>*   s     J J J J J Jr   ORr   c                 2    |                      d| d          S )Nr   Fr   )r   )r'   s    r   <lambda>z(CmfDocument.sdesk_list.<locals>.<lambda>1   s    a11/qV[1\\ r   read)gcurrent_userr   companyservicedesk_allowmodelsCmfProjectRoleAssignlistappend
CmfProjectbuiltinsr   r   cmfutilacl_set_policy)clsr   argskwargsr!   filter_1project_assign_listfilter_2
prj_filterproject_listfiltered_project_listallow_projectsitemsr   s                 r   r   zCmfDocument.sdesk_list   s    *))444	""$?#@AAA>! 	an&<&N 	"("="B"B z($1GI^0_`q~q~7M&NO #C # # #)"="B"B z($1GI^0_`q~&67 #C # # $ J J6I J J JK
484555(--Z-@@ (\\!
 !

 344%**&8TSaBbdjAk*ll 	 	C""3///LLr   )r!   c                    |sg }d|vr|                     d            | j        |d|i|}|r=|j                            d|j        d          rt                              |d           |S )Nr   r!   r   Fr   r,   )r4   getr   r   r7   r8   )r9   r!   r:   r;   ress        r   r   zCmfDocument.sdesk_get<   s     	FF""MM)$$$cgt5F5f55 	03;88ckgl8mm 	0""3///
r   c                     |                     dd           }g }|s|S t          j                             |dg          }|j                            d|j        d          r | j        |i |}|S )Nnode_idr   )r"   r!   r   Fr   )rE   r1   r   r   r   macros_page_tree_get)r9   r:   r;   rH   rF   documents         r   r	   z&CmfDocument.sdesk_macros_page_tree_getH   s    **Y-- 	J %))Wi[)II55o8K[in5oo 	<*#*D;F;;C
r   c                     |sg }|o|                     d          }|r	|r|dd|gg} t                      j        |f||||d|S )Nr%   r   )object_fieldsr   r!   order_by)rE   superfield_options_list)
r9   relation_field_namerL   r   r!   rM   filter_by_projectr;   r%   	__class__s
            r   rO   zCmfDocument.field_options_listW   s      	F!Dm&7&7&D&D	 	=* 	={C;<F)uww)y/<VTZemy yqwy y 	yr   )NNNNN)__name__
__module____qualname__r   r   api_methodsr   classmethodr   r   r	   rO   __classcell__)rR   s   @r   r   r      s        *6 :
 :
 :
 
Kl l l &* ' ' ' ' ['R %) 	 	 	 	 [	   [ lp"
y 
y 
y 
y 
y [
y 
y 
y 
y 
yr   r   )r6   cmf.includemodules.project.modelsr   r   r$   r   r   <module>r[      sw         / / / / / /]y ]y ]y ]y ]y,* ]y ]y ]y ]y ]yr   