B
    Zf                 @   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                   sr   e Zd Zejjddddddddd	d
dg Zdd ZeddddZeddddZ	ddd fdd
Z
  ZS )
CmfProjectZget_obj_treeZdelete_nodeZ	move_itemZget_public_tree_leafZget_tree_leafcheck_project_role_accessZcreate_from_templateZpublic_listZ
public_get	sdesk_get
sdesk_listc             C   s   | j d| ddS )NzPPP-PR-BROWSEF)objraise_error)r   )self r   +./modules/servicedesk/models/cmf_project.py_sdesk_check_access   s    zCmfProject._sdesk_check_accessN)filterc            O   s0  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 }x(t|
D ]}t|d || qW |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>>   s    z)CmfProject.sdesk_list.<locals>.<listcomp>ORc             S   s   | j d| ddS )NzPPP-PR-BROWSEF)r	   r
   )r   )r   r   r   r   <lambda>E       z'CmfProject.sdesk_list.<locals>.<lambda>read)gZcurrent_userZload_fieldsZcompanyZservicedesk_allow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   r      s8    


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)allowed_fieldsr   r   r   i   r    z&CmfProject.sdesk_get.<locals>.<lambda>r   zPPP-PR-BROWSE)r	   r!   )r$   r&   r   getr   r   r'   )r(   r   r)   r*   Zprojectr   )r.   r   r   P   s2    zCmfProject.sdesk_getTF)	recursiveTEXKOM_db_deletec               sD   x$t jj| |dD ]}|j|d qW t j| f|||d|S )N)r   Zinclude_deleted)r1   )r0   r1   )r#   ZCmfSDeskRequestGroupr$   deletesuper)r   r0   r1   r)   r*   r	   )	__class__r   r   r2   q   s    zCmfProject.delete)__name__
__module____qualname__r   r   Zapi_methodsr   classmethodr   r   r2   __classcell__r   r   )r4   r   r      s$   6 r   )r&   Zcmf.includeZmodules.servicedesk.fieldsr   Zcmf.utilr   r   r   r   r   r   <module>   s   