U
    [c                     @   s(   d dl T d dlmZ G dd deZdS )    )*)CmfActiveEntityc                       s  e Zd ZdZdZdZdZddddd	d
gdddddddgdgiZG dd dej	Z	G dd dej
Z
G dd dejZejjejjddddddddddd d!d"d#ZG d$d% d%ejZ fd&d'Ze fd(d)Zd*d+ Zd,d- Zd.d/ Z fd0d1Zd2d3 Z  ZS )4	CmfFolderZFolderZprojectZFLu
   ПапкаZui_group_fieldsZ_main	cmf_owner
cmf_authorZ	executorsZ
spectators)namefieldsZ_addonZperm_encryptZperm_policyZperm_policy_anonymousZperm_policy_guestZperm_policy_sharelinkc                   @   s   e Zd ZdZdS )zCmfFolder.cmf_owneru   ВладелецN)__name__
__module____qualname__caption r   r   ./common/models/cmf_folder.pyr   #   s   c                   @   s   e Zd ZdZdS )zCmfFolder.cmf_authorTN)r	   r
   r   Zvisibler   r   r   r   r   &   s   c                	   @   s"   e Zd Zddddddddd	g	Zd
S )zCmfFolder.tree_nodesr   ZCmfListCmfDocumentZCmfActiveEntityFilterZ
CmfRoadmapZCmfChatGroupZCmfChatTopicZCmfTaskFilterZCmfTaskReportN)r	   r
   r   modelsr   r   r   r   
tree_nodes)   s          r   u   Системный типu   Дискu
   Архивu   Тэгиu   Датыu   Бэклогu   системная папкаZEpicZSprintZReleaseZRoadmapZHome)diskarchiveZtagsZdatesZbacklogZ
sys_folderZepicZsprintreleaseZroadmaphome)r   choicesc                   @   s   e Zd ZdZdZdS )zCmfFolder.textu   Добавить текстZCmfDocEditorN)r	   r
   r   ZplaceholderZwidgetr   r   r   r   text@   s   r   c                    s$   | j r| j jd d  S t  S )N   )sys_typevalueuppersuperget_code_prefixself	__class__r   r   r   D   s    zCmfFolder.get_code_prefixc                    s>    fdd}| dr,||d |d< |d= t j||}|S )Nc                    s6       jj|  d }d| t|d S )N%z{0}{1}   )Zquery_deprecatedfilterZdp_modelcodeZlikeallformatlen)r%   Zexist_foldersclsr   r   prepare_codeK   s    "z&CmfFolder.create.<locals>.prepare_codeZproject_default_folderr%   )getr   create)r*   argskwargsr+   instancer    r)   r   r-   I   s    
zCmfFolder.createc                 C   s$   | j dkrtdd| j j S )Nr   u;   Метод только для домашней папки.z/Users/)r   
ValueErrorr   loadZloginr   r   r   r   home_dirV   s    
zCmfFolder.home_dirc                 C   sn   | j rdd| j g}n| jr(dd| jg}nd }|rjtjjdd| jg|dd| jggdrjtd| j d	d
d d S )Ntree_parent_id=	parent_idr   idz!=)r$   u   Папка с именем uA    уже существует. Укажите другое имя.T)abort)r4   r6   r   r   Zslistr   r7   	cmf_alert)r   Zparent_filterr   r   r   _check_folder_conflict[   s    
z CmfFolder._check_folder_conflictc                 C   s(   | j jsd S tj| j j| jj| _ d S )N)r   
is_changedr   r   Zconfluence_convertr   r7   r   r   r   r   
_calc_texth   s    zCmfFolder._calc_textc                    s   | j js| jjs| jjr.| js&td |   | j jrr| j rV| j dg |  | _n| jrrt| jj	t
jrrd | _| js| j | _| jjr| jdddg |   t j||S )Nu8   Имя папки не может быть пустым.parentr   Zcmf_owner_assistantZactivity)Ztree_parentr;   r=   r   r9   r:   Zload_fieldsZ_node_parent
isinstancer   r   Z
CmfProjectr   r2   r<   r   save)r   r.   r/   r    r   r   r?   m   s     zCmfFolder.savec                 C   s   | j dkrdS dS )Nr   FT)r   r   r   r   r   has_tree_nodes_hook   s    
zCmfFolder.has_tree_nodes_hook)r	   r
   r   Zui_nameZ	ui_moduleZcode_prefixZverbose_nameZui_formr   r   r   r   Zcmfr   ZFieldZ	CmfChoicer   r   r   classmethodr-   r3   r:   r<   r?   r@   __classcell__r   r   r    r   r      sd   
r   N)Zcmf.includeZcommon.models.cmf_active_entityr   r   r   r   r   r   <module>   s   