
    h                     H    d dl T d dlmZ d dlZ G d dej                  ZdS )    )*)cmf_document_historyNc                   x     e Zd ZdZd Zd Z fdZdd fd
Z fdZd	 Z	d
d fd
Z
 fdZ fdZd Z xZS )CmfDocumentHistoryu+   
    История документа
    c                 T    | j         j                            d          }|| _        d S )NOPEN)status_type)parentworkflowget_default_statusstatus)selfstatus_opens     $./cmf/models/cmf_document_history.py_calc_statuszCmfDocumentHistory._calc_status
   s(    k*==&=QQ!    c                 :    t                               |            d S )N)r
   start_approve)r   s    r   r   z CmfDocumentHistory.start_approve   s    T"""""r   c                 F   |                      g d           | j        r*| j        s#t          j                                        | _        t          j                            | j        j        | j	        j
        j                  | _         t                      j        |i | d S )N)r
   projectdoc_version)load_fieldsis_newr   modelsCmfDocumentcalc_doc_versionconfluence_converttextvaluer
   idsuper_save_import)r   argskwargs	__class__s      r   r"   zCmfDocumentHistory._save_import   s    ===>>>; 	Et/ 	E%1BBDDD&99$)/4;>K_``	d-f-----r   r   )depthc                    |                      g d           | j        r*| j        s#t          j                                        | _        | j        r|                                   t                      j        |d|i|S )N)r   r
   zparent.workflowr&   )	r   r   r   r   r   r   r   r!   save)r   r&   r#   r$   r%   s       r   r(   zCmfDocumentHistory.save   s    EEEFFF; 	Et/ 	E%1BBDDD; 	 uww|T99&999r   c                 N    t                                                      g dz   S )N)approvedapproved_atapproved_version)r!   save_preload_fields)r   r%   s    r   r-   z&CmfDocumentHistory.save_preload_fields&   s%    ww**,,/^/^/^^^r   c                 r    |                      dg           | j        r| j                                        S g S )Nr
   )r   r
   
get_owners)r   r#   r$   s      r   r/   zCmfDocumentHistory.get_owners)   s;    ($$$; 	,;))+++	r   F)TEXKOM_db_deletec                F   |rt           j                            | d          D ]}d |_        |                    d            t           j                            | d          D ]}d |_        |                    d             t                      j        |d|i| d S )NT)cur_published_versioninclude_deleted)	only_data)cur_workflow_versionr3   r0   )r   r   listr2   r(   r5   r!   delete)r   r0   r#   r$   docr%   s        r   r7   zCmfDocumentHistory.delete/   s     	))..T[_.`` ) )+/)4(((()..DZ^.__ ) )+/(4((((J/?J6JJJJJr   c                     |                      ddg           | j        r=t                              | j                  }|                    d| j                   d S t                                                       d S )Nr
   
project_idzPPP-DOC-EDITobj)r   r:   APPget_cache_projectcheck_project_role_accessr
   r!   check_edit_permr   r   r%   s     r   r@   z"CmfDocumentHistory.check_edit_perm;   sx    (L1222? 	&++DO<<G--n$+-NNNNNGG##%%%%%r   c                     |                      ddg           | j        r=t                              | j                  }|                    d| j                   d S t                                                       d S )Nr
   r:   zPPP-DOC-DELETEr;   )r   r:   r=   r>   r?   r
   r!   check_delete_permrA   s     r   rC   z$CmfDocumentHistory.check_delete_permC   sy    (L1222? 	(++DO<<G--.>DK-PPPPPGG%%'''''r   c                    ddl m}m}m} |                                 }| d}| j        j                                                            |	                     ||
                    t          j        j        d| dd          |                                                  t          j        j                            |                                                    }|pdS )Nr   )funccastIntegerz-%^- )
sqlalchemyrE   rF   rG   get_code_prefixdpdata_driverSessionquerymaxregexp_replacer   dp_modelcodefilterlikescalar)r   rE   rF   rG   prefixlike_pattern
max_numbers          r    _get_current_code_number_from_dbz3CmfDocumentHistory._get_current_code_number_from_dbK   s    2222222222%%'' }}}W(002288HH''(:(C(H-f---Y[\\  
 
 &',11,??
 

&(( 	 Qr   )__name__
__module____qualname____doc__r   r   r"   r(   r-   r/   r7   r@   rC   r[   __classcell__)r%   s   @r   r   r      s%        " " "# # #. . . . . !" : : : : : : :_ _ _ _ _   .3 
K 
K 
K 
K 
K 
K 
K& & & & &( ( ( ( (      r   r   )cmf.include
cmf.fieldsr   datetimer    r   r   <module>re      sn        + + + + + + V V V V V-@ V V V V Vr   