U
    -g	                     @   s2   d dl T d dlmZ d dlZG dd dejZdS )    )*)cmf_document_historyNc                       s   e Zd ZdZdd Zdd Z fddZdd	 fd
d
Z fddZdd Z	dd fdd
Z
 fddZ fddZ  ZS )CmfDocumentHistoryu+   
    История документа
    c                 C   s   | j jjdd}|| _d S )NZOPEN)Zstatus_type)parentZworkflowZget_default_statusstatus)selfZstatus_open r   $./cmf/models/cmf_document_history.py_calc_status
   s    zCmfDocumentHistory._calc_statusc                 C   s   t |  d S )N)r   start_approver   r   r   r	   r      s    z CmfDocumentHistory.start_approvec                    sT   |  dddg | jr(| js(tj | _tj| jj| j	j
j| _t j|| d S )Nr   projectdoc_version)load_fieldsis_newr   modelsCmfDocumentcalc_doc_versionZconfluence_converttextvaluer   idsuper_save_importr   argskwargs	__class__r   r	   r      s
    zCmfDocumentHistory._save_importr   )depthc                   sL   |  dddg | jr(| js(tj | _| jr6|   t j|d|i|S )Nr   r   zparent.workflowr   )	r   r   r   r   r   r   r
   r   save)r   r   r   r   r   r   r	   r      s    zCmfDocumentHistory.savec                    s   t   dddg S )NZapprovedZapproved_atZapproved_version)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   )r   r   
get_ownersr   r   r   r	   r!   )   s    
zCmfDocumentHistory.get_ownersF)TEXKOM_db_deletec                   sn   |rTt jj| ddD ]}d |_|jdd qt jj| ddD ]}d |_|jdd q<t j|d|i| d S )NT)cur_published_versioninclude_deleted)Z	only_data)cur_workflow_versionr$   r"   )r   r   listr#   r   r%   r   delete)r   r"   r   r   docr   r   r	   r'   /   s    zCmfDocumentHistory.deletec                    s6   |  ddg | jr(| jjd| jd n
t   d S )Nr   r   zPPP-DOC-EDITobj)r   r   check_project_role_accessr   r   check_edit_permr   r   r   r	   r,   ;   s    z"CmfDocumentHistory.check_edit_permc                    s6   |  ddg | jr(| jjd| jd n
t   d S )Nr   r   zPPP-DOC-DELETEr)   )r   r   r+   r   r   check_delete_permr   r   r   r	   r-   B   s    z$CmfDocumentHistory.check_delete_perm)__name__
__module____qualname____doc__r
   r   r   r   r    r!   r'   r,   r-   __classcell__r   r   r   r	   r      s   

r   )Zcmf.includeZ
cmf.fieldsr   Zdatetimer   r   r   r   r	   <module>   s   