U
    [Se                     @   s>   d dl Z d dlT d dlmZ d dlmZ G dd dejZdS )    N)*)cmf_project)cmfutilc                   @   s8   e Zd Zdd ZeddddZedddd	ZdS )

CmfProjectc                 C   s   | j d| ddS NPPP-PR-BROWSEF)objZraise_errorcheck_project_role_access)self r   +./modules/servicedesk/models/cmf_project.py_sdesk_check_access   s    zCmfProject._sdesk_check_accessNfilterc                O   s  dddg}g }|rd|kr|}dddg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}	|d||	g || t jj||d}
t	dd |
}g }t|D ]}t
|d || q|S )Nnamecodetextlogic_prefix=zproject.servicedeskZservicedesk_publicTZservicedesk_allowZpersonsINr   parentzproject_role.codezsdesk-client:defaultzsdesk-agent:defaultORmembers)fieldsr   idc                 S   s   g | ]
}|j qS r   )	parent_id).0pr   r   r   
<listcomp>-   s     z)CmfProject.sdesk_list.<locals>.<listcomp>c                 S   s   | j d| ddS r   r	   )r   r   r   r   <lambda>4       z'CmfProject.sdesk_list.<locals>.<lambda>read)ZmodelsZ
CmfCompanylistgZcurrent_userZCmfProjectRoleAssignappendr   builtinsr   r   acl_set_policy)clsr   argskwargsr   Zsearch_filterZfilter_1Zcompany_listZproject_assign_listZfilter_2Zproject_listZfiltered_project_listitemsr   r   r   r   
sdesk_list   sB    



zCmfProject.sdesk_list)r   c                   s|   ddddddddd	d
dddddddg |s.g }t t fdd|}| j|d|i|}|rx|jd|d t|d |S )Nr   r   r   r   r   descriptionZcmf_owner_idZactivity_idr   Z
logic_typeZ	cmf_ownerZproject_typeZtask_code_prefixZshow_tree_iconsZui_modelZui_view_formZallow_edit_commentsc                    s   |  kS )Nr   )fZallowed_fieldsr   r   r    X   r!   z&CmfProject.sdesk_get.<locals>.<lambda>r   r   )r   r"   )r#   r&   r   getr
   r   r'   )r(   r   r)   r*   Zprojectr   r/   r   	sdesk_get?   s4    zCmfProject.sdesk_get)__name__
__module____qualname__r   classmethodr,   r1   r   r   r   r   r      s
   3r   )r&   Zcmf.includeZmodules.project.modelsr   Zcmf.utilr   r   r   r   r   r   <module>   s   