U
    Vcy                     @   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 fd.d/Zd0d1 Z  ZS )2	CmfFolderZFolderprojectFLu
   Папкаui_group_fields_main	cmf_owner
cmf_author	executors
spectators)namefieldsZ_addonperm_encryptperm_policyperm_policy_anonymousperm_policy_guestperm_policy_sharelinkc                   @   s   e Zd ZdZdS )zCmfFolder.cmf_owneru   ВладелецN)__name__
__module____qualname__caption r   r   $/opt/crm/common/models/cmf_folder.pyr	   #   s   c                   @   s   e Zd ZdZdS )zCmfFolder.cmf_authorTN)r   r   r   visibler   r   r   r   r
   &   s   c                   @   s   e Zd ZdddddddgZdS )	zCmfFolder.tree_nodesr   CmfListCmfDocumentCmfActiveEntityFilter
CmfRoadmapCmfChatGroupCmfChatTopicN)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archivetagsdatesbacklogZ
sys_folderZepicZsprintreleaseZroadmaphome)r   choicesc                   @   s   e Zd ZdZdS )zCmfFolder.textu   Добавить текстN)r   r   r   placeholderr   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   r2   C   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}   )query_deprecatedfilterdp_modelcodelikeallformatlen)r<   Zexist_foldersclsr   r   prepare_codeJ   s    "z&CmfFolder.create.<locals>.prepare_codeZproject_default_folderr<   )getr1   create)rB   argskwargsrC   instancer5   rA   r   rE   H   s    
zCmfFolder.createc                 C   s$   | j dkrtdd| j j S )Nr)   u;   Метод только для домашней папки.z/Users/)r.   
ValueErrorr	   loadloginr3   r   r   r   home_dirU   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)rM   rO   r!   r   slistr   rP   	cmf_alert)r4   parent_filterr   r   r   _check_folder_conflictZ   s    
z CmfFolder._check_folder_conflictc                    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	   cmf_owner_assistantactivity)tree_parent
is_changedrV   r   rS   rU   load_fields_node_parent
isinstancer/   r!   
CmfProjectr	   rJ   r1   save)r4   rF   rG   r5   r   r   r_   g   s    zCmfFolder.savec                 C   s   | j dkrdS dS )Nr#   FT)r.   r3   r   r   r   has_tree_nodes_hook}   s    
zCmfFolder.has_tree_nodes_hook)r   r   r   ui_name	ui_modulecode_prefixverbose_nameui_formr   r	   r
   r"   cmfr   Field	CmfChoicer.   r,   r2   classmethodrE   rL   rU   r_   r`   __classcell__r   r   r5   r   r      sb   
r   N)cmf.includecommon.models.cmf_active_entityr   r   r   r   r   r   <module>   s   