
    h                     X    d dl Z d dl d dlmZ d dlmZ  G d dej                        Zy)    N)*)cmf_project)cmfutilc                   t    e Zd Zej                  j
                  g dz   Zd Zeddd       Zeddd       Z	y)
CmfProject)get_obj_treedelete_node	move_itemget_public_tree_leafget_tree_leafcheck_project_role_accesscreate_from_templatepublic_list
public_get	sdesk_get
sdesk_listc                 *    | j                  d| d      S NPPP-PR-BROWSEF)objraise_errorr   )selfs    +./modules/servicedesk/models/cmf_project.py_sdesk_check_accesszCmfProject._sdesk_check_access   s    --o4UZ-[[    N)filterc                   g d}g }|rd|v r|}g dg}g d}t         j                  j                  dg       t         j                  j                  ryt         j                  j                  j                  rUt
        j                  j                  dgddd	d
ggddt         j                  t         j                  j                  ggg      }n;t
        j                  j                  dgddd	d
ggddt         j                  ggg      }dd|D cg c]  }|j                   c}g}	|j                  d||	g       |j                  |       t
        j                  j                  ||      }
t        j                  d |
      }g }t        |      D ])  }t        j                  |d       |j                  |       + |S c c}w )N)namecodedescriptionr   )logic_prefix=zproject.servicedesk)servicedesk_publicr#   Tzcompany.servicedesk_allowparentzproject_role.codeINzsdesk-client:defaultzsdesk-agent:defaultmembers)fieldsr   idORc                 *    | j                  d| d      S r   r   )ps    r   <lambda>z'CmfProject.sdesk_list.<locals>.<lambda>E   s    a11/qV[1\ r   read)gcurrent_userload_fieldscompanyservicedesk_allowmodelsCmfProjectRoleAssignlist	parent_idappendr   builtinsr   r   acl_set_policy)clsr   argskwargsr(   search_filterfilter_1project_assign_listr,   filter_2project_listfiltered_project_listitemsr   s                 r   r   zCmfProject.sdesk_list   s    1 f&#] 9
 5	""$?#@A>>!!ann&<&<&N&N"("="="B"B z($1GI^0_`q~~q~~7M7M&NO #C # #)"="="B"B z($1GI^0_`q~~&67 #C # $6I J JKtXx01m$((--VF-K (\!

 -. 	C""3/LL	 ! !Ks   F;)r(   c                    h d|sg }t        t        j                  fd|            } | j                  |d|i|}|r)|j	                  d|       t        j                  |d       |S )N>   r)   r    r   textui_model	cmf_ownerr7   
logic_typeactivity_idcmf_owner_idr"   project_typeui_view_formdescr_documentshow_tree_iconstask_code_prefixallow_edit_commentsdisable_comments_treec                     | v S )N )fallowed_fieldss    r   r-   z&CmfProject.sdesk_get.<locals>.<lambda>j   s    ^0C r   r(   r   )r   r.   )r6   r9   r   getr   r   r:   )r;   r(   r<   r=   projectrV   s        @r   r   zCmfProject.sdesk_getP   so    
, Fhoo&CVLM#''499&9--o7-K""7F3r   )
__name__
__module____qualname__r   r   api_methodsr   classmethodr   r   rT   r   r   r   r      sR    ((44 8
 
K\ &* 4 4l %)  r   r   )r9   cmf.includemodules.servicedesk.fieldsr   cmf.utilr   r   rT   r   r   <module>ra      s%      2 i'' ir   