B
    Ff	                 @   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                sR   |  ddg | jr&| js&tj | _tj| jj| j	j
j| _t j|| d S )Nr   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_fields)r   )r   r   r	   r   &   s    z&CmfDocumentHistory.save_preload_fieldsc             O   s    |  dg | jr| j S g S )Nr   )r   r   
get_owners)r   r   r   r   r   r	   r   )   s    
zCmfDocumentHistory.get_ownersF)TEXKOM_db_deletec               sJ   |r0x*t jj| ddD ]}d |_|jdd qW t j|ddi| d S )NT)cur_published_versionZinclude_deleted)Z	only_datar   F)r   r   listr   r   r   delete)r   r   r   r   doc)r   r   r	   r!   /   s
    zCmfDocumentHistory.deletec                s6   |  ddg | jr(| jjd| jd n
t   d S )Nr   projectzPPP-DOC-EDIT)obj)r   r#   check_project_role_accessr   r   check_edit_perm)r   )r   r   r	   r&   6   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-DELETE)r$   )r   r#   r%   r   r   check_delete_perm)r   )r   r   r	   r'   =   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   