
    i                     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                     | j         j        r| j         j                                        }n | j         j                            d          }|| _        d S )NOPEN)status_type)parentis_newworkflowget_create_statusget_default_statusstatus)selfstatus_opens     $./cmf/models/cmf_document_history.py_calc_statuszCmfDocumentHistory._calc_status
   sN    ; 	V+.@@BBKK+.AAfAUUK!    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_fieldsr   r   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   r0   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_versionr4   r1   )r   r   listr3   r)   r6   r"   delete)r   r1   r$   r%   docr&   s        r   r8   zCmfDocumentHistory.delete2   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   rA   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_permrB   s     r   rD   z$CmfDocumentHistory.check_delete_permF   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-%^- )
sqlalchemyrF   rG   rH   get_code_prefixdpdata_driverSessionquerymaxregexp_replacer   dp_modelcodefilterlikescalar)r   rF   rG   rH   prefixlike_pattern
max_numbers          r    _get_current_code_number_from_dbz3CmfDocumentHistory._get_current_code_number_from_dbN   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.   r0   r8   rA   rD   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>rf      sn        + + + + + + Y Y Y Y Y-@ Y Y Y Y Yr   