U
    Eh_                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_componentc                       s   e Zd Zejjdg Zdd Zdd Zdd Zdd	 Z	 fd
dZ
 fddZdd Z fddZdd fdd
Z fddZ  ZS )CmfComponentcreate_descr_documentc                 C   s
   d| _ d S )NZcomponentlist)Zui_view_formself r   )./modules/project/models/cmf_component.py_calc_ui_view_form   s    zCmfComponent._calc_ui_view_formc                 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)r   r   Zfolderr   r   r	   _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_fullname3   s    zCmfComponent._calc_fullnamec                    s&   |    |   |   t j||S N)r   r   r   supersaver   argskwargs	__class__r   r	   r    >   s    zCmfComponent.savec                    s   |    t j|| d S r   )r   r   _save_importr!   r$   r   r	   r&   D   s    zCmfComponent._save_importc                 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	   r   H   s    
z"CmfComponent.create_descr_documentc                    s   t   dg S )NZtasks)r   project_perm_allow_fieldsr   r$   r   r	   r(   U   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.   Y   s    

zCmfComponent.deletec                    s   t   dg S )Nr   )r   save_preload_fieldsr   r$   r   r	   r/   d   s    z CmfComponent.save_preload_fields)__name__
__module____qualname__r   r   Zapi_methodsr
   r   r   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   