
    `>h_                     D    d dl  d dlmZ  G d dej                        Zy)    )*)cmf_componentc                        e Zd Zej                  j
                  dgz   Zd Zd Zd Zd Z	 fdZ
 fdZd Z fd	Zd
d fd
Z fdZ xZS )CmfComponentcreate_descr_documentc                     d| _         y )Ncomponentlist)ui_view_formselfs    )./modules/project/models/cmf_component.py_calc_ui_view_formzCmfComponent._calc_ui_view_form   s
    +    c                 B   | j                   j                  s| j                  sy t        | j                   j                  t
        j                        ry t        | j                   j                  t
        j                        r>| j                   j                  j                          | j                   j                  dk(  ry | j                   r| j                  r| j                  }|sv| j                   rj| j                   j                  j                  dk(  r| j                   }n:| j                   j                  j                          | j                   j                  }t
        j                  j                  |d      }|st        dd       || _         y t        dd       y )N
components
CmfProject)tree_parentsys_typeu?   Проект не поддерживает КомпонентыTabortun   Компоненты могут располагаться только в других компонентах)r   
is_changedis_new
isinstancevaluemodelsr   	CmfFolderr   loadparent
class_nameget	cmf_alert)r   r   folders      r   _calc_tree_parentzCmfComponent._calc_tree_parent   sA     ++;;d&&,,f.A.ABd&&,,f.>.>?%%**,((L84;;[[Fd..##))44D!--F$$++002!--44F%%))f|)TF[dhi%D  C  KO  	Pr   c                     | j                   j                          | j                   j                  j                  dk(  r| j                   | _        y | j                   j                  j                          | j                   j                  | _        y )Nr   )r   r   r   r   r   r   s    r   _calc_parentzCmfComponent._calc_parent+   sf    !!,,<**DK##((***11DKr   c                     | j                   | _        | j                  }|r[|r:|j                  j                  dk(  r!|j                    d| j                   | _        ny |j                  j                         }|rZy y )Nr   z / )nametextr   r   r   r   )r   r   s     r   _calc_fullnamezCmfComponent._calc_fullname3   sj    II	&&{00;;~M*//0DII;?	%11668K r   c                     | j                          | j                          | j                          t        |   |i |S N)r#   r%   r)   supersaver   argskwargs	__class__s      r   r-   zCmfComponent.save>   s;     w|T,V,,r   c                 D    | j                          t        |   |i | y r+   )r)   r,   _save_importr.   s      r   r3   zCmfComponent._save_importD   s!    d-f-r   c                    | j                  g d       | j                  rt        dd       t        j	                  | j
                  d| j                   |       }|j                          || _        | j                          y )N)r   r'   descr_documentuC   Документ с описанием уже существует!Tr   u   Описание )r   r'   r   )load_fieldsr5   r!   r   CmfDocumentr   r'   r-   )r   r5   s     r   r   z"CmfComponent.create_descr_documentH   sr    =>[cgh++;;$TYYK0 , 

 	,		r   c                 (    t         |          dgz   S )Ntasks)r,   project_perm_allow_fieldsr   r1   s    r   r:   z&CmfComponent.project_perm_allow_fieldsU   s    w02gY>>r   F)TEXKOM_db_deletec                H   |rVt         j                  j                  dd| ggdg      D ]-  }|j                  j	                  |        |j                          / | j                  j                         r | j                  j                  |d|i| t        |    |d|i| y )Nr   IN)filterfieldsr<   )
r   CmfTasklistr   remover-   r5   r   deleter,   )r   r<   r/   r0   taskr1   s        r   rD   zCmfComponent.deleteY   s    ++L$3OYeXf+g &&t,		 ##%&D&&Z?OZSYZJ/?J6Jr   c                 (    t         |          dgz   S )Nr(   )r,   save_preload_fieldsr;   s    r   rG   z CmfComponent.save_preload_fieldsd   s    w*,x77r   )__name__
__module____qualname__r   r   api_methodsr   r#   r%   r)   r-   r3   r   r:   rD   rG   __classcell__)r1   s   @r   r   r      s_    ,,88#<
 
K,P82	9-.? .3 	K8 8r   r   N)cmf.includemodules.project.fieldsr   r    r   r   <module>rP      s     0_8=-- _8r   