U
    r;d9                     @   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                   @   s   e Zd ZeddddZdS )CmfDocumentNfilterc                O   s   dddg}dddg}t jjdddgdd	tjgggd
}t jjdgdd	ddggddd	tjggdd	|gggd}dd	dd |D g}g }	|	d||g t jj|	d
}
t	dd |
}t|}t j
j|dd	|g|gdS )NnamecodetextZservicedesk_public=TZservicedesk_allowZpersonsINr   parentzproject_role.codezsdesk-client:defaultzsdesk-agent:defaultORmembers)fieldsr   idc                 S   s   g | ]
}|j qS  )Z	parent_id).0pr   r   ,./modules/servicedesk/models/cmf_document.py
<listcomp>   s     z*CmfDocument.sdesk_list.<locals>.<listcomp>c                 S   s   | j d| ddS )NzPPP-PR-BROWSEF)objZraise_error)Zcheck_project_role_access)r   r   r   r   <lambda>#       z(CmfDocument.sdesk_list.<locals>.<lambda>)ZmodelsZ
CmfCompanylistgZcurrent_userZCmfProjectRoleAssignappendZ
CmfProjectbuiltinsr   r   )clsr   argskwargsr   Zfilter_1Zcompany_listZproject_assign_listZfilter_2Z
prj_filterZproject_listZfiltered_project_listZallow_projectsr   r   r   
sdesk_list   s2    


zCmfDocument.sdesk_list)__name__
__module____qualname__classmethodr    r   r   r   r   r      s   r   )r   Zcmf.includeZmodules.project.modelsr   r   r   r   r   r   <module>   s   