U
    Ef]                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_componentc                       sZ   e Zd Zdd Zdd Zdd Z fddZd	d
 Z fddZdd fdd
Z	  Z
S )CmfComponentc                 C   s   | j js| jsd S t| j jtjr&d S t| j jtjrR| j j	  | j jdkrRd S | j r^| jr| j
}|s| j r| j jjdkr| j }n| j j
	  | j j
}tjj|dd}|stddd || _ d S tddd d S )N
components
CmfProject)tree_parentsys_typeu?   Проект не поддерживает КомпонентыTabortun   Компоненты могут располагаться только в других компонентах)r   Z
is_changedZis_new
isinstancevaluemodelsr   Z	CmfFolderr   loadparent
class_nameget	cmf_alert)selfr   Zfolder r   )./modules/project/models/cmf_component.py_calc_tree_parent   s.    
zCmfComponent._calc_tree_parentc                 C   s<   | j   | j jjdkr"| j | _n| j j  | j j| _d S )Nr   )r   r   r   r   r   r   r   r   r   _calc_parent#   s
    

zCmfComponent._calc_parentc                 C   sJ   | j | _| j}|rF|rF|jjdkrF|j  d| j | _nqF|j }qd S )Nr   z / )nametextr   r   r   r   )r   r   r   r   r   _calc_fullname+   s    zCmfComponent._calc_fullnamec                    s&   |    |   |   t j||S )N)r   r   r   supersave)r   argskwargs	__class__r   r   r   6   s    zCmfComponent.savec                 C   sV   |  dddg | jr"tddd tj| jd| j | d}|  || _|   d S )	Nr   r   descr_documentuC   Документ с описанием уже существует!Tr	   u   Описание )r   r   r   )Zload_fieldsr"   r   r   ZCmfDocumentr   r   r   )r   r"   r   r   r   create_descr_document<   s    
z"CmfComponent.create_descr_documentc                    s   t   dg S )NZtasks)r   project_perm_allow_fieldsr   r    r   r   r$   I   s    z&CmfComponent.project_perm_allow_fieldsF)TEXKOM_db_deletec                   sr   |r8t jjdd| ggdgdD ]}|j|  |  q| j rX| jj|d|i| t	 j|d|i| d S )Nr   IN)filterZfieldsr%   )
r   ZCmfTasklistr   remover   r"   r   deleter   )r   r%   r   r   Ztaskr    r   r   r*   M   s    

zCmfComponent.delete)__name__
__module____qualname__r   r   r   r   r#   r$   r*   __classcell__r   r   r    r   r      s   r   N)Zcmf.includeZmodules.project.fieldsr   r   r   r   r   r   <module>   s   