
    PBi                      0    d dl  d dlmZ  G d de      Zy)    )*)CmfActiveEntityc                   0    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                  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                  j!                  ej                  j&                  dAdBddCgdD      Zej                  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y)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y)CmfFolder.cmf_authorTN)r   r   r   visibler!   r"   r#   r   r%   ,   s    r"   r   c                       e Zd Zg dZy)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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y)CmfFolder.textu   Добавить текстCmfDocEditorN)r   r   r   placeholderwidgetr!   r"   r#   textrd   h   s    3r"   rh   c                     | j                   r'| j                   j                  d d j                         S t        |          S )N
   )sys_typevalueuppersuperget_code_prefix)self	__class__s    r#   ro   zCmfFolder.get_code_prefixl   s8    ====&&s+1133w&((r"   c                 v      fd}|j                  d      r ||d         |d<   |d= t           |i |}|S )Nc                    j                   j                  j                        j                  j                  j                  j                  |  d            j                         }dj                  | 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   si    FF33CLLAHHIZIZI_I_cgbhhi`jIklpprM??4]);A)=>>r"   project_default_folderrz   )getrn   create)r   argskwargsr   instancerq   s   `    r#   r   zCmfFolder.createq   sJ    	? ::./)&.9F6N/07>4262r"   c                     | j                   dk7  rt        d      d| j                  j                         j                   S )NrN   u;   Метод только для домашней папки.z/Users/)rk   
ValueErrorr   loadloginrp   s    r#   home_dirzCmfFolder.home_dir   s;    ==F"Z[[,,.44566r"   c                 0   | j                   rdd| j                   g}n| j                  rdd| j                  g}nd }|rZt        j                  j	                  dd| j
                  g|dd| j                  gg      rt        d| j
                   d	d
       y y y )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    -sD4G4GHM^^(#t~~>M MV--33dii0-$dggAVW 4 Y3DII;>  A  IM  NY=r"   c                     | j                   j                  sy t        j                  j	                  | j                   j
                  | j                  j
                        | _         y )N)rh   
is_changedr>   r+   confluence_convertrl   r   r   s    r#   
_calc_textzCmfFolder._calc_text   s<    yy##&&99$))//477==Y	r"   c                 &   | j                   j                  s| j                  sy | j                   dk(  rd| _        y | j                   dk(  rd| _        y | j                   dk(  rd| _        y | j                   dk(  rd| _        y | j                   dk(  rd| _        y | j                   dk(  rd| _        y | j                   dk(  rd	| _        y | j                   d
k(  rd| _        y | j                   dk(  rd| _        y | j                  j                         | _        y )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   s    (({{==F" &D]]i' )D]]j( *D]]i' )D]]l* ,D]]o- .D]]33 4D]]44 5D]]88 8D $ 2 2 4Dr"   c                    | j                   j                  s,| j                  j                  s| j                  j                  r'| j                  st	        d       | j                          | j                   j                  r| j                   r2| j                   j                  dg       | j                         | _        nA| j                  r5t        | j                  j                  t        j                        rd | _        | j                  s| j                  j                         | _        | j                  j                  r| j                  j                  g d       | j                          t        | @  |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   &&$++*@*@DIIDXDX99TU'') &&  ,,hZ8"//1 ;;:dkk.?.?ARAR#S"&DK{{..--/DK;;!!KK##$UVw|T,V,,r"   c                 $    | j                   dk(  ryy)Nr@   FT)rk   r   s    r#   has_tree_nodes_hookzCmfFolder.has_tree_nodes_hook   s    ==F"r"   c                 R    | j                    d| j                   d| j                   S )N/)	ui_moduler   rz   r   s    r#   hrefzCmfFolder.href   s&    ..!4<<.$))==r"   F)TEXKOM_db_deletec                    |r?t         j                  j                  | d      D ]  }d |_        |j	                  d        t        |   |d|i| y )NT)home_folderinclude_deleted)	only_datar   )r>   	CmfPersonlistr   r   rn   delete)rp   r   r   r   personrq   s        r#   r   zCmfFolder.delete   s[     **//DRV/W ,#'"d+, 	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4O-- 4_// E_// E zz

+
J
|
 J
 Z	

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

/(M# " J ZZ%%

3(M# & N ##  )
  7

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