
    hMAi                      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)sl_owner_lock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	CmfReport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   Черновик фильтрr0   	parent_id)r    modelr&   options_list_paramsoptions_list_query_allu!   Черновик BQL-фильтрr1   c                       e Zd ZdZdZdS )CmfFolder.textu   Добавить текстCmfDocEditorN)r   r   r   placeholderwidgetr!   r"   r#   textrd   h   s        3r"   rh   c                     | j         r&| j         j        d d                                         S t                                                      S )N
   )sys_typevalueuppersuperget_code_prefix)self	__class__s    r#   ro   zCmfFolder.get_code_prefixl   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)rz   exist_foldersclss     r#   prepare_codez&CmfFolder.create.<locals>.prepare_codes   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_folderrz   )getrn   create)r   argskwargsr   instancerq   s   `    r#   r   zCmfFolder.createq   ss    	? 	? 	? 	? 	? ::.// 	1)\&.99F6N/0!577>42622r"   c                 x    | j         dk    rt          d          d| j                                        j         S )NrN   u;   Метод только для домашней папки.z/Users/)rk   
ValueErrorr   loadloginrp   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!=)ry   u   Папка с именем uA    уже существует. Укажите другое имя.T)abort)r   r_   r>   r   slistr   r   	cmf_alert)rp   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)rh   
is_changedr>   r+   confluence_convertrl   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@   rD   rR   rA   rX   rP   knowlagebaserQ   servicedeskclientsrS   servicedeskchannelsrT   knowlagebasecategories)rk   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
isinstancerl   r>   
CmfProjectr   r   r   rn   save)rp   r   r   rq   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)rk   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   rz   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   rn   delete)rp   r   r   r   personrq   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	CmfChoicerk   CmfRelation
tmp_filtertmp_bql_filterrh   ro   classmethodr   r   r   r   r   r   r   propertyr   r   __classcell__)rq   s   @r#   r   r      s       GIKLK!-"1
 
K 	    !  
 

G2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        ; ; ; ; ; ;PJ PJ PJ PJ PJ PJ PJ PJ PJ PJr"   