U
    Ue                     @   s2   d dl Z d dlT d dlmZ G dd dejZdS )    N)*)cmf_documentc                   @   s8   e Zd Zdd ZeddddZedddd	ZdS )
CmfDocumentc                 C   s    |  dg | jjd| jddS )Nroot_parentPPP-PR-BROWSEFobjZraise_error)load_fieldsr   check_project_role_access)self r   ,./modules/servicedesk/models/cmf_document.py_sdesk_check_access   s    zCmfDocument._sdesk_check_accessNfilterc                O   s  dddg}dddg}t jdg t jjrft jjjrftjjdgd	d
ddggdd
t jt jjgggd}n*tjjdgd	d
ddggdd
t jgggd}dd
dd |D g}g }|d||g tj	j|d}	t
dd |	}
t|
}g }tjj|dd
|g|gdD ]}t|d || q|S )NnamecodetextZservicedesk_public=Tzcompany.servicedesk_allowparentzproject_role.codeINzsdesk-client:defaultzsdesk-agent:defaultmembers)fieldsr   idc                 S   s   g | ]
}|j qS r   )Z	parent_id).0pr   r   r   
<listcomp>#   s     z*CmfDocument.sdesk_list.<locals>.<listcomp>ORr   c                 S   s   | j d| ddS )Nr   Fr   )r
   )r   r   r   r   <lambda>*       z(CmfDocument.sdesk_list.<locals>.<lambda>read)gZcurrent_userr	   ZcompanyZservicedesk_allowZmodelsZCmfProjectRoleAssignlistappendZ
CmfProjectbuiltinsr   r   cmfutilacl_set_policy)clsr   argskwargsr   Zfilter_1Zproject_assign_listZfilter_2Z
prj_filterZproject_listZfiltered_project_listZallow_projectsitemsr   r   r   r   
sdesk_list   s<    

zCmfDocument.sdesk_list)r   c                O   sV   |sg }d|kr| d | j|d|i|}|rR|jjd|jddrRt|d |S )Nr   r   r   Fr   r    )r#   getr   r
   r%   r&   )r'   r   r(   r)   resr   r   r   	sdesk_get5   s    
zCmfDocument.sdesk_get)__name__
__module____qualname__r   classmethodr+   r.   r   r   r   r   r      s
   )r   )r$   Zcmf.includeZmodules.project.modelsr   r   r   r   r   r   <module>   s   