U
    -dQ                     @   s*   d dl T d dlmZ G dd dejZdS )    )*)cmf_document_historyc                       sN   e Zd ZdZ fddZdd Zdd fdd	
Z fd
dZdd Z  Z	S )CmfDocumentHistoryu+   
    История документа
    c                    s   | j rt  S d S )N)Zis_newsuper_increment_versionself	__class__  ./models/cmf_document_history.pyr   	   s    
z%CmfDocumentHistory._increment_versionc                 C   s|   | j rx| j jrx| j  d| _tj| _tj	j
dddgdd| jjgdd| jgdd	d
ggdgdgd}|rx|jrx|jd | _d S )N   approvedz==TZ	parent_ididz!=approved_version>0z-approved_version)filterZorder_byZfields)r   Z
is_changedapproved_atZset_nowr   gZcurrent_personZapproved_byZmodelsr   getparentr   )r   Zapproved_historyr   r   r   _calc_approved_version   s    

z)CmfDocumentHistory._calc_approved_versionr   )depthc                   s   |    t j|d|i|S )Nr   )r   r   save)r   r   argskwargsr	   r   r   r      s    zCmfDocumentHistory.savec                    s   t   dddg S )Nr   r   r   )r   save_preload_fieldsr   r	   r   r   r   #   s    z&CmfDocumentHistory.save_preload_fieldsc                 O   s    |  dg | jr| j S g S )Nr   )Zload_fieldsr   
get_owners)r   r   r   r   r   r   r   &   s    
zCmfDocumentHistory.get_owners)
__name__
__module____qualname____doc__r   r   r   r   r   __classcell__r   r   r	   r   r      s   r   N)Zcmf.includeZ
cmf.fieldsr   r   r   r   r   r   <module>   s   