U
    g                     @   s*   d dl T ddlmZ G dd dejZdS )    )*   )cmf_active_ver_entityc                       s`   e Zd ZdZddgZejjddg Zdd Zdd	 Z	d
d Z
dd Zdd Z fddZ  ZS )CmfActiveVerEntityTnameZ	cmf_ownercreate_new_cmf_verrestore_cmf_verc                 C   s   |  dg | jj}| js&tddd | j|d}d| _| d| j | _| jdd d|_|jd	 |_||_|  | jj}||_	|jdd d
S )u7   Создание новой версии объектаr   u   Ошибка! Попытка создать новую версию из не-cur объекта. Используйте для этого метод restore_cmf_verTabortcodeFz-vZ	only_data   N)
Zload_fieldsr   valuecmf_ver_cur	cmf_alertZclonecmf_ver_numbersavecmf_ver_headcmf_ver_head2cur)selfr   Znew_curZhead_obj r   (./common/models/cmf_active_ver_entity.pyr      s"    z%CmfActiveVerEntity.create_new_cmf_verc                 C   s   t ddd dS )u'   Востановление версииZTODO1Tr	   N)r   r   r   r   r   r   -   s    z"CmfActiveVerEntity.restore_cmf_verc                 C   s`   d| _ d| _| j| j dd}| j d|jdd   |_d|_| |_d|_ |  || _	d S )	NTr   z-headr   :Hiu]   ### Технический объект! Обратитесь к разработчику ###F)
r   r   	__class__r   
class_nameidr   r   r   r   )r   headr   r   r   _init_new_cmf_ver_obj1   s    z(CmfActiveVerEntity._init_new_cmf_ver_objc                 C   sF   d}| j j}| jD ]}| | jr| | ||< d}q|rB|jdd d S )NFTr   )r   r   cmf_ver_head_sync_fieldsZ
is_changedr   )r   Zchangedr   Z
field_namer   r   r   _cmf_ver_head_sync=   s    

z%CmfActiveVerEntity._cmf_ver_head_syncc                 C   s   | j j| j dS )Nr   )r   r   
startswithr   r   r   r   r   _cmf_ver_is_linkG   s    z#CmfActiveVerEntity._cmf_ver_is_linkc                    sX   |   r(| jstddd t j||S | jr<| js<|   | jrJ|   t j||S )Nu4   Нельзя редактирвоать cmf_ver headTr	   )	r#   Zis_newr   superr   r   r   r   r!   )r   argskwargsr   r   r   r   J   s    zCmfActiveVerEntity.save)__name__
__module____qualname__Zabstractr    r   r   Zapi_methodsr   r   r   r!   r#   r   __classcell__r   r   r'   r   r      s   
r   N)Zcmf.includeZfieldsr   r   r   r   r   r   <module>   s   