U
    Ȝhi@                     @   s2   d dl T d dlT d dlmZ G dd dejZdS )    )*)cmf_testcycle_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 )CmfTestcycleFolderc                 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   0./modules/evatest/models/cmf_testcycle_folder.py_calc_fullname   s    z!CmfTestcycleFolder._calc_fullnamec                    s   t   ddg S )Nr   r   )supersave_preload_fields)r   	__class__r   r   r      s    z&CmfTestcycleFolder.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CmfTestcycleFolder.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CmfTestcyclelistextendr   )r   resultZ
testcyclesZ
subfoldersZ	subfolderget_folder_testcyclesr   r   r      s    
z:CmfTestcycleFolder.rec_list.<locals>.get_folder_testcyclesr   )r   r   r   r   r   r   rec_list   s    zCmfTestcycleFolder.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   