U
    Įwhb                     @   s2   d dl T d dlT d dlmZ G dd dejZdS )    )*)cmf_testcyclec                       sT   e Zd Zejjdg Zdd Zdd Z fddZdd	 Z	e
d fdd	Z  ZS )CmfTestcyclecompletec                 C   s   | j r
d S tjjdd| _ d S )Nztestcycle.base:default)code)workflowmodelsZCmfWorkflowget)self r   )./modules/evatest/models/cmf_testcycle.py_calc_workflow   s    zCmfTestcycle._calc_workflowc                 C   sD   | j jsd S tjjdd| gddd ggdD ]}| j |_|  q*d S )Nparentz==responsible)filter)Zdefault_responsibleZ
is_changedr   ZCmfTestcaseRunlistr   save)r
   Ztest_case_runr   r   r   _apply_responsible   s    zCmfTestcycle._apply_responsiblec                    s0   | j r| jr| jj| d |   t j||S )N)Z	testcycle)Zis_newZtestplanrunr   superr   r
   argskwargs	__class__r   r   r      s    zCmfTestcycle.savec                 O   s    | j  jdd| _|   d S )NZCLOSED)Zstatus_type)r   loadZget_default_statusstatusr   r   r   r   r   r      s    zCmfTestcycle.completeNc                    s>   |dkr$| j |f||||d|S t j||||||f|S )Nrelease)object_fieldsr   fieldsorder_by)Zreleases_options_listr   field_options_list)clsZrelation_field_nameZmodels_filtersr   r   r   r    r   r   r   r   r!   !   s    zCmfTestcycle.field_options_list)NNNNN)__name__
__module____qualname__r   r   Zapi_methodsr   r   r   r   classmethodr!   __classcell__r   r   r   r   r      s   r   N)Zcmf.includeZ
cmf.fieldsZmodules.evatest.fieldsr   r   r   r   r   r   <module>   s   