U
    e                     @   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d	g t jjrt jjjrt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}|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company.servicedesk_allowparentzproject_role.codeINzsdesk-client:defaultzsdesk-agent:defaultmembers)fieldsr   idc                 S   s   g | ]
}|j qS r   )	parent_id).0pr   r   r   
<listcomp>0   s     z)CmfProject.sdesk_list.<locals>.<listcomp>ORc                 S   s   | j d| ddS r   r	   )r   r   r   r   <lambda>7       z'CmfProject.sdesk_list.<locals>.<lambda>read)gZcurrent_userZload_fieldsZcompanyZservicedesk_allowZmodelsZCmfProjectRoleAssignlistappendr   builtinsr   r   acl_set_policy)clsr   argskwargsr   Zsearch_filterZfilter_1Zproject_assign_listZfilter_2Zproject_listZfiltered_project_listitemsr   r   r   r   
sdesk_list   sD    


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   [   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_getB   s4    zCmfProject.sdesk_get)__name__
__module____qualname__r   classmethodr+   r0   r   r   r   r   r      s
   6r   )r%   Zcmf.includeZmodules.project.modelsr   Zcmf.utilr   r   r   r   r   r   <module>   s   