U
    d                     @   s8   d dl m Z  d dlT d dlZG dd dejjjjZdS )    )cached_property)*Nc                       s   e Zd Zejjjjjd Zdd Z	ddddd fdd
Z
d	d
 fdd
Zedd Zdd Zdd Zdd ZedddZedddZedddZedddZdd Zd d! Z  ZS )"CmfPluginConfluence)
confluencec              	   K   s6   t jf | j| j| j|||d|}|  || _dS )u#    Дает доступ из вне )nametypetokenext_url	ext_login	ext_tokenN)models	CmfPlugincode
class_nameidsaveplugin)selfr	   r
   r   kwargsr    r   4./modules/confluence/models/cmf_plugin_confluence.py_init_secret
   s      z CmfPluginConfluence._init_secretr   N)depthr	   r
   r   c                   s*   | j r| ||| t j|d|i|S )Nr   )Zis_newr   superr   )r   r   r	   r
   r   argsr   	__class__r   r   r      s    zCmfPluginConfluence.saveF)forcec                   s>   t jjdd| jgddddgd}|  t j|d|i|S )Nr   z==r	   r
   r   )filterfieldsr   )r   r   getr   deleter   )r   r   r   r   r   r   r   r   r!      s
    
zCmfPluginConfluence.deletec              	   C   s\   ddl m} | ddddddd	g || jjj| jjj| jjj| jjj| jj	j| jj
jd
S )Nr   )ConfluenceApir   zplugin.ext_urlzplugin.ext_loginzplugin.ext_tokenzplugin.verify_sslzplugin.cloudzplugin.ext_password)ZurlZloginZpasswordr   
verify_sslcloud)Zmodules.confluence.apir"   Zload_fieldsr   r	   valuer
   Zext_passwordr   r#   r$   )r   r"   r   r   r   r      s     
zCmfPluginConfluence.confluencec              
   O   sT   zdd | j |dD W S  tk
rN } zt| g  W Y S d }~X Y nX d S )Nc                 S   s   g | ]}|qS r   r   .0objr   r   r   
<listcomp>*   s     z7CmfPluginConfluence.get_space_pages.<locals>.<listcomp>children.page)r   Zget_root_pages_from_space	Exceptiongdebug)r   keyr   r   er   r   r   get_space_pages(   s
    
z#CmfPluginConfluence.get_space_pagesc                 O   s   dd | j  D S )Nc                 S   s   g | ]}|qS r   r   r&   r   r   r   r)   0   s     z6CmfPluginConfluence.get_all_spaces.<locals>.<listcomp>)r   get_all_spaces)r   r   r   r   r   r   r1   /   s    z"CmfPluginConfluence.get_all_spacesc                 O   s   | j j|ddS )Nr*   )expand)r   get_page_by_id)r   Zpage_idr   r   r   r   r   r3   2   s    z"CmfPluginConfluence.get_page_by_id)returnc                 C   s   ddl m} || j| S )u   
        Инициализация настроек
        :param models.CmfImport cmf_import: Объект импорта.
        r   ConfluenceAPIImport)modules.confluence.api_importr6   r   calc_import_settingsr   Z
cmf_importr6   r   r   r   r8   5   s    z(CmfPluginConfluence.calc_import_settingsc                 C   s   ddl m} || j| S )u   
        Предварительный просмотр данных
        :param models.CmfImport cmf_import: Объект импорта.
        r   r5   )r7   r6   r   previewr9   r   r   r   r:   =   s    zCmfPluginConfluence.previewc                 C   s"   ddl m} d|_|| j| S )ux   
        Процесс импорта
        :param models.CmfImport cmf_import: Объект импорта.
        r   r5   u)   Импорт данных из Confluence)r7   r6   r   r   process_importr9   r   r   r   r;   E   s    z"CmfPluginConfluence.process_importc                 C   s   g S )Nr   )r   r   r   r   calc_models_settingsN   s    z(CmfPluginConfluence.calc_models_settingsc                 C   s   ddl m} || j| S Nr   r5   )r7   r6   r   download_datar9   r   r   r   r>   Q   s    z!CmfPluginConfluence.download_datac                 C   s   ddl m} || j| S r=   )r7   r6   r   download_filesr9   r   r   r   r?   U   s    z"CmfPluginConfluence.download_files)__name__
__module____qualname__modulesr   r   cmf_plugin_confluencer   Zui_meta_skipr   r   r!   r   r0   r1   r3   listr8   r:   boolr;   r<   r>   r?   __classcell__r   r   r   r   r      s   
	r   )r   Zcmf.includeZ/modules.confluence.fields.cmf_plugin_confluencerC   r   r   rD   r   r   r   r   r   <module>   s   