
    WiZ                     D    d dl mZ d dl  G d dej                        Zy)    )cmf_testcase_step)*c                        e Zd Z fdZd Zd fd	Ze edd      defd              Z	e
 fd	       Ze
 fd
       Zd Z fdZ xZS )CmfTestcaseStepc                 *    t         |          g dz   S )N)copyexpected_resultcomment	test_datastep_number)supersave_preload_fields)self	__class__s    -./modules/evatest/models/cmf_testcase_step.pyr   z#CmfTestcaseStep.save_preload_fields   s    w*,/qqq    c                 P   t         j                  j                  dd| gg d      D ]q  }t        |j                  d      5 }t         j                  ||j
                        }|j                  |j                                |j                          ddd       s y# 1 sw Y   ~xY w)u?    Копирование вложений для CmfTestcaseStepparent==)url_previewurl_preview_imgurl)filterfieldsrb)r   nameN)	modelsCmfAttachmentlistopenfull_path_filer   upload_filereadsave)r   r   
attachmentfilenew_attachments        r   copy_attachmentsz CmfTestcaseStep.copy_attachments
   s     ..33d4(< 4 
 	&J j//6 &$!'!5!5V*//!5!Z**499;7##%& &		&& &s    ABB%	c                 V    t        |   ||g|i |}|r| j                  |       |S )N)r   r   r(   )r   r   r(   codeargskwargsnew_objr   s          r   r   zCmfTestcaseStep.copy   s3    ',tT;D;F;!!'*r   Tu=   Пересчет номеров шагов тесткейса)	only_oncedescriptiontestcase_idc                    t         j                  j                  dd| gddgg d      }i }|D ]]  }|j                  j                  }|j                  |d      dz   ||<   |j                  ||   k7  sD||   |_        |j                          _ y	)
u   Пересчитывает порядковые номера шагов внутри каждой секции тесткейсаr   r   step_sectionorderno)r2   r   r3   )r   order_byr   r      N)r   r   r   r2   valuegetr   r$   )r0   stepssection_countersstepsections        r   recalc_steps_numberz#CmfTestcaseStep.recalc_steps_number   s     &&++dK0$i0= , 
  	D''--G(8(<(<Wa(H1(LW%#3G#<<#3G#< 			r   c                     t        |   ||fi |}| j                  |dg      }t        | j                  |j
                  g       |S N	parent_id)r   )r+   )r   
move_abovesgetschedule_deferred_jobr<   r?   )clsobj_id	before_idr,   resobjr   s         r   r@   zCmfTestcaseStep.move_above/   sH    g =f=hhv{mh4c55S]]OL
r   c                     t        |   ||fi |}| j                  |dg      }t        | j                  |j
                  g       |S r>   )r   
move_belowrA   rB   r<   r?   )rC   rD   after_idr,   rF   rG   r   s         r   rI   zCmfTestcaseStep.move_below6   sH    g <V<hhv{mh4c55S]]OL
r   c                     | j                   s-| j                  j                  s| j                  j                  sy d| j                   d| j                   d| _        y )Nu
   Шаг №u    (секция: ))is_newr   
is_changedr2   r   )r   s    r   
_calc_namezCmfTestcaseStep._calc_name=   sP    ##..$$// !1!1 22B4CTCTBUUVW	r   c                 .   | j                   rj| j                  j                  sTdd| j                  gdd| j                  gdd| j
                  gg}t        j                  j                  |      dz   | _        | j                          t        | ,  |i |S )Nr   r   r2   idz!=)r   r5   )rM   r   rN   r   r2   rQ   r   r   countrO   r   r$   )r   r+   r,   _filterr   s       r   r$   zCmfTestcaseStep.saveE   s    ;;t//:: $4nd4K\K\5]d477+-G%55;;7;KaODw|T,V,,r   )FN)__name__
__module____qualname__r   r(   r   staticmethodcmf_deferred_jobstrr<   classmethodr@   rI   rO   r$   __classcell__)r   s   @r   r   r      sw    r	& 2qr  s $    X- -r   r   N)modules.evatest.fieldsr   cmf.includer    r   r   <module>r_      s     4 G-'77 G-r   