U
    $*9j                     @   s2   d dl T d dlT d dlmZ G dd dejZdS )    )*)cmf_testcase_stepc                       sZ   e Zd Zejjdg Zdd Zd fdd	Z fdd	Z fd
dZ	ddddZ
  ZS )CmfTestcaseStepcopyc              
   C   sd   t jjdd| gdddgdD ]B}t|jd,}t j||jd}||  |  W 5 Q R X qd	S )
u?    Копирование вложений для CmfTestcaseStepparentz==Zurl_previewZurl_preview_imgurl)filterZfieldsrb)r   nameN)	ZmodelsZCmfAttachmentlistopenZfull_path_filer
   Zupload_filereadsave)selfr   Z
attachmentfileZnew_attachment r   -./modules/evatest/models/cmf_testcase_step.pycopy_attachments	   s    
z CmfTestcaseStep.copy_attachmentsFNc                    s0   t  j||f||}|r$| | |  |S N)superr   r   _update_parent_modified_at)r   r
   r   codeargskwargsZnew_obj	__class__r   r   r      s
    
zCmfTestcaseStep.copyc                    s   t  j||}|   |S r   )r   r   r   r   r   r   resultr   r   r   r      s    zCmfTestcaseStep.savec                    s   t  j||}|   |S r   )r   deleter   r   r   r   r   r       s    zCmfTestcaseStep.delete)returnc                 C   s(   | j   | j j  | j jdd dS )u  
        Обновляет cmf_modified_at у родительского testcase
        Необходимо, чтобы изменения в testcase_step отражались на времени модификации родительского testcase
        T)Z	only_dataN)r   loadZcmf_modified_atZset_nowr   )r   r   r   r   r   %   s    
z*CmfTestcaseStep._update_parent_modified_at)FN)__name__
__module____qualname__r   r   Zapi_methodsr   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   