
    bh	                      6    d dl T d dlmZ  G d de          ZdS )    )*)CmfActiveEntityc                       e Zd ZdZdZdZdZdZej	        ddgz   Z	dd	g d
ddg ddgiZ
 G d dej                  Z G d dej                  Z G d dej                  Zej                            ej        j        di dddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?@          Zej                            ej        j        dAdBddCgdD          Zej                            ej        j        dEdFddCgdD          Z G dG dHej                  Z fdIZe fdJ            ZdK ZdL ZdM ZdN Z fdOZdP Ze dQ             Z!dRdS fdT
Z" xZ#S )U	CmfFolderFolderprojectFLu
   ПапкаTpublic_parent_ui_get
public_getui_group_fields_main)	cmf_owner
cmf_author	executors
spectators)namefields_addon)perm_encryptperm_policyperm_policy_anonymousperm_policy_guestperm_policy_sharelinkc                       e Zd ZdZdS )CmfFolder.cmf_owneru   Владелец разделаN)__name__
__module____qualname__caption     ./common/models/cmf_folder.pyr   r   (   s        3r!   r   c                       e Zd ZdZdS )CmfFolder.cmf_authorTN)r   r   r   visibler    r!   r"   r   r$   +   s        r!   r   c                       e Zd Zg dZdS )CmfFolder.tree_nodes)r   CmfListCmfKanbanBoardCmfDocumentCmfActiveEntityFilter
CmfRoadmapCmfChatGroupCmfChatTopicCmfTaskFilterCmfBqlFilterCmfTaskReportCmfTaskCmfTaskQueueCmfSDeskKnowlageCategoryCmfComponentCmfAssetCatCmfAssetTypeCatCmfRegistryCmfTestplanCmfReqCmfReqFolderN)r   r   r   modelsr    r!   r"   
tree_nodesr'   .   s"        E E Er!   r=   u   Системный типdisku   Дискarchiveu
   Архивtagsu   Тэгиdatesu   Датыbacklogu   Бэклог
sys_folderu   системная папкаepicEpicsprintSprintreleaseReleaseroadmapRoadmaphomeHomeknowlage_baseu   База знанийservicedesk_clientsu   Клиенты Service Desktrashcanu   Корзинаservicedesk_channelsu   Каналыknowlage_base_categoriesu)   База знаний. Категорииqueueu   Очередиu   Отчетыu   Фильтрыu   Компонентыu   Активыu   Типы активовu   Локацииu   Репозиторииu   Обучение)reportsfilters
componentsassetsasset_types	locationsapp_git	app_learn)r   choicesu   Черновик фильтрr/   	parent_id)r   modelr%   options_list_paramsoptions_list_query_allu!   Черновик BQL-фильтрr0   c                        e Zd ZdZdZdZdgZdS )CmfFolder.textu   Добавить текстCmfDocEditorTgin_trgmN)r   r   r   placeholderwidgetindexindex_usingr    r!   r"   textrb   g   s$        3!lr!   ri   c                     | j         r&| j         j        d d                                         S t                                                      S )N
   )sys_typevalueuppersuperget_code_prefix)self	__class__s    r"   rp   zCmfFolder.get_code_prefixm   sC    = 	4=&ss+11333ww&&(((r!   c                       fd}|                     d          r ||d                   |d<   |d=  t                      j        |i |}|S )Nc                    j                             j                                      j        j                            |  d                                                    }d                    | t          |          dz             S )N%z{0}{1}   )	dpquery_deprecateddp_modelfiltercodelikeallformatlen)r{   exist_foldersclss     r"   prepare_codez&CmfFolder.create.<locals>.prepare_codet   sr    F33CLAAHHIZI_I_cg`j`j`jIkIkllpprrM??4]););A)=>>>r!   project_default_folderr{   )getro   create)r   argskwargsr   instancerr   s   `    r"   r   zCmfFolder.creater   ss    	? 	? 	? 	? 	? ::.// 	1)\&.99F6N/0!577>42622r!   c                 x    | j         dk    rt          d          d| j                                        j         S )NrL   u;   Метод только для домашней папки.z/Users/)rl   
ValueErrorr   loadloginrq   s    r"   home_dirzCmfFolder.home_dir   s=    =F""Z[[[6,,..4666r!   c                     | j         rdd| j         g}n| j        rdd| j        g}nd }|rOt          j                            dd| j        g|dd| j        gg          rt          d| j         d	d
           d S d S d S )Ntree_parent_id=r]   r   idz!=)rz   u   Папка с именем uA    уже существует. Укажите другое имя.T)abort)r   r]   r<   r   slistr   r   	cmf_alert)rq   parent_filters     r"   _check_folder_conflictz CmfFolder._check_folder_conflict   s     	!-sD4GHMM^ 	!(#t~>MM M 	NV-33di0-$dgAVW 4 Y Y 	N  ADI  A  A  A  IM  N  N  N  N  N  N	N 	N 	N 	Nr!   c                     | j         j        sd S t          j                            | j         j        | j        j                  | _         d S )N)ri   
is_changedr<   r*   confluence_convertrm   r   r   s    r"   
_calc_textzCmfFolder._calc_text   s:    y# 	F&99$)/47=YY			r!   c                    | j         j        s	| j        sd S | j         dk    r	d| _        d S | j         dk    r	d| _        d S | j         dk    r	d| _        d S | j         dk    r	d| _        d S | j         dk    r	d| _        d S | j         dk    r	d| _        d S | j         dk    r	d	| _        d S | j         d
k    r	d| _        d S | j         dk    r	d| _        d S | j                                        | _        d S )Nr>   rB   rP   r?   rV   rN   knowlagebaserO   servicedeskclientsrQ   servicedeskchannelsrR   knowlagebasecategories)rl   r   is_newui_view_formui_namelowerr   s    r"   _calc_ui_view_formzCmfFolder._calc_ui_view_form   s2   ( 	{	 F=F"" &D]i'' )D]j(( *D]i'' )D]l** ,D]o-- .D]333 4D]444 5D]888 8D $ 2 2 4 4Dr!   c                    | j         j        s| j        j        s| j        j        r*| j        st	          d           |                                  | j         j        rn| j         r5| j                             dg           |                                 | _        n2| j        r+t          | j        j	        t          j                  rd | _        | j        s| j                                        | _        | j        j        r| j                            g d           |                                   t                      j        |i |S )Nu8   Имя папки не может быть пустым.parent)r   cmf_owner_assistantsactivity)tree_parentr   r   r   r   r   load_fields_node_parent
isinstancerm   r<   
CmfProjectr   r   r   ro   save)rq   r   r   rr   s      r"   r   zCmfFolder.save   s?   & 	*$+*@ 	*DIDX 	*9 VTUUU''))) & 	' ' ,,hZ888"//11 ; ':dk.?AR#S#S '"&DK{ 	0.--//DK;! 	WK##$U$U$UVVVuww|T,V,,,r!   c                      | j         dk    rdS dS )Nr>   FT)rl   r   s    r"   has_tree_nodes_hookzCmfFolder.has_tree_nodes_hook   s    =F""5tr!   c                 4    | j          d| j         d| j         S )N/)	ui_moduler   r{   r   s    r"   hrefzCmfFolder.href   s$    .==4<==$)===r!   F)TEXKOM_db_deletec                    |rAt           j                            | d          D ]}d |_        |                    d             t                      j        |d|i| d S )NT)home_folderinclude_deleted)	only_datar   )r<   	CmfPersonlistr   r   ro   delete)rq   r   r   r   personrr   s        r"   r   zCmfFolder.delete   sw     	, *//DRV/WW , ,#'"d++++I.>I&IIIIIr!   )$r   r   r   r   r   code_prefixverbose_namefull_searchr   api_methodsui_formr   r   r=   cmfr   Field	CmfChoicerl   CmfRelation
tmp_filtertmp_bql_filterri   rp   classmethodr   r   r   r   r   r   r   propertyr   r   __classcell__)rr   s   @r"   r   r      s       GIKLK!-"1
 
K 	    !  	 	
G04 4 4 4 4O- 4 4 4    _/   E E E E E_/ E E E z
+
J
|
 J
 Z	

 ~
 9
 F
 h
 y
 y
 F
 4
 "#@
 (
 #N
  '(S!
" %#
$ &'0$4)/+3
 
 
    H@ !!
/(M# "  J Z%%
3(M# &  N# # # # ## # # #) ) ) ) )
     [7 7 7

N 
N 
NZ Z Z
5 5 54- - - - -.  
 > > X> .3 J J J J J J J J J J Jr!   r   N)cmf.includecommon.models.cmf_active_entityr   r   r    r!   r"   <module>r      sk        ; ; ; ; ; ;QJ QJ QJ QJ QJ QJ QJ QJ QJ QJr!   