
    #h                     T    d dl Z d dlT d dlmZ d dlmZ  G d dej                  ZdS )    N)*)cmf_project)cmfutilc                        e Zd Zej        j        g dz   Zd Zeddd            Zeddd            Z	dd	d
 fd
Z
 xZS )
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                 2    |                      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                            dg           t           j        j        r^t           j        j        j        rHt
          j                            dgddd	d
ggddt           j        t           j        j        ggg          }n7t
          j                            dgddd	d
ggddt           j        ggg          }ddd |D             g}|                    d||g           |                    |           t
          j	                            ||          }	t          j        d |	          }
g }t          |
          D ],}t          j        |d           |                    |           -|S )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   idc                     g | ]	}|j         
S  )	parent_id).0ps     r   
<listcomp>z)CmfProject.sdesk_list.<locals>.<listcomp>>   s     J J J J J Jr   ORc                 2    |                      d| d          S r   r   )r.   s    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appendr   builtinsr   r   acl_set_policy)clsr   argskwargsr(   search_filterfilter_1project_assign_listfilter_2project_listfiltered_project_listitemsr   s                r   r   zCmfProject.sdesk_list   s    100  	$f&&#] 988
 544	""$?#@AAA>! 	an&<&N 	"("="B"B z($1GI^0_`q~q~7M&NO #C # # #)"="B"B z($1GI^0_`q~&67 #C # # $ J J6I J J JKtXx0111m$$$(--VF-KK (\\!
 !

 -.. 	 	C"3///LLr   )r(   c                    h d|sg }t          t          j        fd|                    } | j        |d|i|}|r,|                    d|           t          j        |d           |S )N>   r)   r    r   textui_model	cmf_ownerr,   
logic_typeactivity_idr!   cmf_owner_idr"   project_typeui_view_formshow_tree_iconstask_code_prefixallow_edit_commentsdisable_comments_treec                     | v S )Nr+   )fallowed_fieldss    r   r2   z&CmfProject.sdesk_get.<locals>.<lambda>j   s    ^0C r   r(   r   )r   r3   )r;   r=   r   getr   r   r>   )r?   r(   r@   rA   projectrX   s        @r   r   zCmfProject.sdesk_getP   s    
 
 
,  	Fho&C&C&C&CVLLMM#'499&99 	4--o7-KKK"7F333r   TF	recursiveTEXKOM_db_deletec                   | j                                          | j         rt          dd           t          j                            | |          D ]}|                    |            t                      j        | g|R ||d|S )Nu@   Нельзя удалять проект по умолчаниюT)abort)r%   include_deleted)r]   r[   )
is_defaultload	cmf_alertr9   CmfSDeskRequestGroupr;   deletesuper)r   r\   r]   r@   rA   r   	__class__s         r   re   zCmfProject.deleter   s    ? 	fX`deeee.334Qa3bb 	: 	:CJJ(8J9999uww~dlTllYQalleklllr   )__name__
__module____qualname__r   r   api_methodsr   classmethodr   r   re   __classcell__)rg   s   @r   r   r      s        (4 8
 8
 8
 
K\ \ \ &* 4 4 4 4 [4l %)     [B '+U m m m m m m m m m m mr   r   )r=   cmf.includemodules.servicedesk.fieldsr   cmf.utilr   r   r+   r   r   <module>rq      s         2 2 2 2 2 2      rm rm rm rm rm' rm rm rm rm rmr   