
    |j                      0    d dl  d dlmZ  G d de      Zy)    )*)CmfActiveEntityc                   2    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?d@	A      Zej                  j!                  ej                  j&                  dBdCddDgdE      Zej                  j!                  ej                  j&                  dFdGddDgdE      Z G dH dIej,                        Z fdJZe fdK       ZdL ZdM ZdN ZdO Z fdPZdQ Ze dR        Z!dSdT fdU
Z" xZ#S )V	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   Обучениеu   Вложения)	reportsfilters
componentsassetsasset_types	locationsapp_git	app_learnattachments)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#   textre   i   s    3r"   ri   c                     | j                   r'| j                   j                  d d j                         S t        |          S )N
   )sys_typevalueuppersuperget_code_prefix)self	__class__s    r#   rp   zCmfFolder.get_code_prefixm   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)r{   exist_foldersclss     r#   prepare_codez&CmfFolder.create.<locals>.prepare_codet   si    FF33CLLAHHIZIZI_I_cgbhhi`jIklpprM??4]);A)=>>r"   project_default_folderr{   )getro   create)r   argskwargsr   instancerr   s   `    r#   r   zCmfFolder.creater   sJ    	? ::./)&.9F6N/07>4262r"   c                     | j                   dk7  rt        d      d| j                  j                         j                   S )NrN   u;   Метод только для домашней папки.z/Users/)rl   
ValueErrorr   loadloginrq   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!=)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    -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)ri   
is_changedr>   r+   confluence_convertrm   r   r   s    r#   
_calc_textzCmfFolder._calc_text   s<    yy##&&99$))//477==Y	r"   c                 T   | 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                   dk(  rd| _        y | j                  j                         | _        y )Nr@   rD   rR   rA   rX   rP   knowlagebaserQ   servicedeskclientsrS   servicedeskchannelsrT   knowlagebasecategoriesr^   )rl   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]]m+ -D $ 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
isinstancerm   r>   
CmfProjectr   r   r   ro   save)rq   r   r   rr   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)rl   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   r{   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   ro   delete)rq   r   r   r   personrr   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	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 	 !

G24O-- 4_// E_// E zz

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

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

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

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

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