U
    <¡gh\  ã                   @   s*   d dl T ddlmZ G dd„ dejƒZdS )é    )Ú*é   )Úcmf_active_ver_entityc                       s¸   e Zd ZdZddgZejjdddg Zdd„ Zd	d
„ Z	dd„ Z
dd„ Zdd„ Zdd„ Z‡ fdd„Z‡ fdd„Zd"‡ fdd„	Zd#dd„Zedddddœ‡ fdd„
ƒZd$‡ fd d!„	Z‡  ZS )%ÚCmfActiveVerEntityTÚnameZ	cmf_ownerÚcreate_new_cmf_verÚrestore_cmf_verÚlist_cmf_verc                 C   sØ   |   ddddg¡ | js$tddd | jj}| jj}d| _|› d	| j› | _| jdd
 t||dd| jd d}| j	f |Ž}| j
r°| j
D ]&}|j|krœ||_|jrˆ|jdd
 qˆ|  |¡ | jj}||_|jdd
 dS )u7   Ð¡Ð¾Ð·Ð´Ð°Ð½Ð¸Ðµ Ð½Ð¾Ð²Ð¾Ð¹ Ð²ÐµÑ€ÑÐ¸Ð¸ Ð¾Ð±ÑŠÐµÐºÑ‚Ð°r   zcmf_ver_head.cmf_ver_head2curÚ
tree_nodesztree_nodes.tree_parentu¥   ÐžÑˆÐ¸Ð±ÐºÐ°! ÐŸÐ¾Ð¿Ñ‹Ñ‚ÐºÐ° ÑÐ¾Ð·Ð´Ð°Ñ‚ÑŒ Ð½Ð¾Ð²ÑƒÑŽ Ð²ÐµÑ€ÑÐ¸ÑŽ Ð¸Ð· Ð½Ðµ-cur Ð¾Ð±ÑŠÐµÐºÑ‚Ð°. Ð˜ÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐ¹Ñ‚Ðµ Ð´Ð»Ñ ÑÑ‚Ð¾Ð³Ð¾ Ð¼ÐµÑ‚Ð¾Ð´ restore_cmf_verT©ÚabortFz-v©Z	only_dataé   )r   ÚcodeZcopy_allÚcmf_ver_curÚcmf_ver_numberN)Úload_fieldsr   Ú	cmf_alertr   Úvaluer   r   ÚsaveÚdictÚcopyr
   Ztree_parentÚ
is_changedÚ_after_create_new_cmf_verÚcmf_ver_headÚcmf_ver_head2cur)Úselfr   r   ÚkwargsÚnew_curZnodeZhead_obj© r   ú(./common/models/cmf_active_ver_entity.pyr      s0    ÿ
ÿ


z%CmfActiveVerEntity.create_new_cmf_verc                 C   s   dS )u~   Ð¥ÑƒÐº Ð´Ð»Ñ Ñ€Ð°ÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ð² Ð´Ð¾Ñ‡ÐµÑ€Ð½Ð¸Ñ… ÐºÐ»Ð°ÑÑÐ°Ñ…. ÐŸÐ¾ ÑƒÐ¼Ð¾Ð»Ñ‡Ð°Ð½Ð¸ÑŽ Ð½Ð¸Ñ‡ÐµÐ³Ð¾ Ð½Ðµ Ð´ÐµÐ»Ð°ÐµÑ‚.Nr   )r   r   r   r   r    r   5   s    z,CmfActiveVerEntity._after_create_new_cmf_verc                 C   s   t ddd dS )u'   Ð’Ð¾ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ðµ Ð²ÐµÑ€ÑÐ¸Ð¸ZTODO1Tr   N)r   ©r   r   r   r    r   9   s    z"CmfActiveVerEntity.restore_cmf_verc                 C   s`   d| _ d| _| j| j› dd}| j› d|jdd … › |_d|_| |_d|_ | ¡  || _	d S )	NTr   z-head)r   ú:HiÝÿÿÿu]   ### Ð¢ÐµÑ…Ð½Ð¸Ñ‡ÐµÑÐºÐ¸Ð¹ Ð¾Ð±ÑŠÐµÐºÑ‚! ÐžÐ±Ñ€Ð°Ñ‚Ð¸Ñ‚ÐµÑÑŒ Ðº Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚Ñ‡Ð¸ÐºÑƒ ###F)
r   r   Ú	__class__r   Ú
class_nameÚidr   r   r   r   )r   Úheadr   r   r    Ú_init_new_cmf_ver_obj=   s    z(CmfActiveVerEntity._init_new_cmf_ver_objc                 C   sX   d}| j j| jddgdd }| jD ]}| | jr$| | ||< d}q$|rT|jdd d S )NFTÚcmf_ver_head2cur_id)r%   Úonly_ver_headÚfieldsr   r   )r#   ÚlistZcmf_ver_head_idÚcmf_ver_head_sync_fieldsr   r   )r   Zchangedr&   Z
field_namer   r   r    Ú_cmf_ver_head_syncI   s    

z%CmfActiveVerEntity._cmf_ver_head_syncc                 C   s   | j j | j› d¡S )Nr"   )r%   r   Ú
startswithr$   r!   r   r   r    Ú_cmf_ver_is_linkU   s    z#CmfActiveVerEntity._cmf_ver_is_linkc                    s€   |   ¡ r(| jstddd tƒ j||ŽS | j}d}| jrX|sBd}nt|dd ƒ| jkrXd}|rd|  ¡  | j	rr|  
¡  tƒ j||ŽS )Nu4   ÐÐµÐ»ÑŒÐ·Ñ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¸Ñ€Ð²Ð¾Ð°Ñ‚ÑŒ cmf_ver headTr   Fr   )r/   Zis_newr   Úsuperr   r   Úgetattrr   r'   r   r-   )r   Úargsr   r   Zneed_init_head©r#   r   r    r   X   s     zCmfActiveVerEntity.savec                    s   t ƒ  ¡ | j dddg S )Nr   r   r   )r0   Úsave_preload_fieldsr,   r!   r3   r   r    r4   n   s    z&CmfActiveVerEntity.save_preload_fieldsNFc                    sN   |rd|kr|  d¡ | jr6tƒ jf ||ddœ|—ŽS tƒ jf ||dœ|—ŽS )Nr(   F)r*   ÚforceZver_resolve_head)r*   r5   )Úappendr/   r0   r   )r   r*   r5   r   r3   r   r    r   q   s
    
zCmfActiveVerEntity.load_fieldsc                 C   s@   |   dg¡ |sg }| ddg¡ | jdd| jgdd|dgdS )Nr   r%   r   ú=T)ÚfilterÚinclude_verZinclude_templatesr*   Zorderby)r   ÚextendZslistr   )r   r*   r   r   r    r	   z   s    
ûzCmfActiveVerEntity.list_cmf_ver)Úfull_fields_loadr8   r9   r)   c                   sr   |   |¡}|sg }|s6|s6|r,|dddggndddg}|rV|rL|dddggndddg}tƒ j|||dœ|—Ž}|S )uì   
        Ð¢.Ðº. Ð¿Ð¾ show definition Ð»ÑŽÐ´Ð¸ Ð¿Ñ€Ð¸Ð´ÑƒÑ‚ Ð·Ð° Ð³Ð°Ð¹Ð´Ð¾Ð¼ Ð¿Ð¾ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸ÑŽ filter Ð¸Ð¼ÐµÐ½Ð½Ð¾ ÑÑŽÐ´Ð°, Ð´ÑƒÐ±Ð»Ð¸Ñ€ÑƒÑŽ Ð´Ð¾ÐºÑƒ
        https://bcrm.carbonsoft.ru/project/Document/DOC-000282
        r   r7   Tr   z!=N)r;   r8   )Z_default_kwargsr0   Ú_count)Úclsr;   r8   r9   r)   r2   r   Úretr3   r   r    r<   ‡   s    
zCmfActiveVerEntity._countc                    s*   | j j | j› d¡sd S d}tƒ  |¡S )Nr"   T)r%   r   r.   r$   r0   Úmark_full_search)r   Zceleryr3   r   r    r?   —   s    z#CmfActiveVerEntity.mark_full_search)NF)N)T)Ú__name__Ú
__module__Ú__qualname__Zabstractr,   r   r   Zapi_methodsr   r   r   r'   r-   r/   r   r4   r   r	   Úclassmethodr<   r?   Ú__classcell__r   r   r3   r    r      s(   ý 	
r   N)Zcmf.includer*   r   r   r   r   r   r    Ú<module>   s   