U
    Vc~                     @   s*   d dl T d dlZG dd dejjjZdS )    )*Nc                       sj   e Zd Zejjjjd ZdddddddgZdd
dZ	dd Z
dddddZdd Zd fdd	Z  ZS )CmfTreeNode)tree_fieldsZtree_parent_idZordernonameZsys_typehas_tree_nodesZtree_hiddenparentNc                 C   s:   | g}d| j kr|S | jj|dD ]}||  q"|S )uN   
        Список всех нод проекта
        :return:
        
tree_nodes)fields)r	   r   loadextendget_tree_nodes_recursive)selfr	   Z	node_listZnode r    ./common/models/cmf_tree_node.pyr      s    
z$CmfTreeNode.get_tree_nodes_recursivec                 C   s   | j S )N)r   )r   r   r   r   has_tree_nodes_hook   s    zCmfTreeNode.has_tree_nodes_hookFTforce	recursivec                O   s   | j f ||d|S )Nr   )delete)r   r   r   _argskwargsr   r   r   delete_node"   s    zCmfTreeNode.delete_nodec                 C   s>   | j j}|r:t|tjr|S |j s2td|| |jjS d S )Nu@   У узла дерева отсутствует родитель)tree_parentvalue
isinstanceZmodelsZ
CmfProjectr   r
   ZCmfError)r   r   r   r   r   _node_parent%   s    
zCmfTreeNode._node_parentc                    sZ   | j rL|  }|rL|rL| D ],}d| j d|j }| j|j| j|d qt j||S )Nu   Создан u    в проекте )Z	person_idr   msg)	Zis_newr   Zall_relation_personsZverbose_namer   Z_place_notifyidsupersave)r   notifyargsr   ZprojectZpersonr   	__class__r   r   r   1   s    zCmfTreeNode.save)N)T)__name__
__module____qualname__commonr	   cmf_tree_noder   Zui_meta_skipr   r   r   r   r   r   __classcell__r   r   r"   r   r      s   
r   )Zcmf.includeZcommon.fields.cmf_tree_noder'   r	   r(   r   r   r   r   r   <module>   s   