U
    Ȝhi4                     @   s2   d dl T d dlT d dlmZ G dd dejZdS )    )*)cmf_testplan_folderc                       s@   e Zd Zdd Z fddZddd fdd	
Zd
d Z  ZS )CmfTestplanFolderc                 C   sJ   | j | _| j}|rF|rF|jjdkrF|j  d| j | _nqF|j }qdS )uI   Рассчитать полное имя с учетом иерархииr   z / N)nametexttree_parentvalue
class_nameload)selfr    r   /./modules/evatest/models/cmf_testplan_folder.py_calc_fullname   s    z CmfTestplanFolder._calc_fullnamec                    s   t   ddg S )Nr   r   )supersave_preload_fields)r   	__class__r   r   r      s    z%CmfTestplanFolder.save_preload_fieldsNr   is_task_transition_rundepthc                   s    |    t j|||d|S )Nr   )r   r   save)r   r   r   argskwargsr   r   r   r      s    zCmfTestplanFolder.savec                    s    fdd  | S )u   
        Рекурсивный вывод тест-планов из папки и всех подпапок.
        Возвращает плоский список только тест-планов (без папок).
        c                    sF   g }t jj| d}|| t jj| d}|D ]}| | q.|S )uP   Рекурсивно получить все тест-планы из папки)folder)r   )ZmodelsZCmfTestplanlistextendr   )r   resultZ	testplansZ
subfoldersZ	subfolderget_folder_testplansr   r   r      s    
z8CmfTestplanFolder.rec_list.<locals>.get_folder_testplansr   )r   r   r   r   r   r   rec_list   s    zCmfTestplanFolder.rec_list)__name__
__module____qualname__r   r   r   r   __classcell__r   r   r   r   r      s   r   N)Zcmf.includeZ
cmf.fieldsZmodules.evatest.fieldsr   r   r   r   r   r   <module>   s   