U
    4Me                     @   s2   d dl mZ d dlT d dlmZ G dd dZdS )    )List)*)fieldsc                   @   s^   e Zd ZdZdd Zedd Zeee edddZ	ed	d
 Z
edd ZdddZdS )JiraBaseImportuE   Базовый класс загрузки объектов из jirac                 C   s0   ddl m} || _| | jjd | _d| _d S )Nr   )	CmfImportZimport_settingsF)Zcommon.models.cmf_importr   
cmf_import_normalize_settingsZjson_settingssettingsZ
has_errors)selfr   r    r   ./modules/jira/base_import.py__init__   s    zJiraBaseImport.__init__c                 C   s8   t d| }|r|  n| }d| d| d| dS )Nz(?<=\().+(?=\))z<li>z <a href="/desk?obj=Task:z">z	</a></li>)researchgrouplower)titlekeyZ	link_typer   r   r   _get_link_for_description   s    z(JiraBaseImport._get_link_for_description)r	   returnc                 C   s   dd | D S )Nc                 S   s   i | ]}|d  |qS )namer   ).0sr   r   r   
<dictcomp>   s      z6JiraBaseImport._normalize_settings.<locals>.<dictcomp>r   )r	   r   r   r   r      s    z"JiraBaseImport._normalize_settingsc                 C   s@   ddddddddd	d
ddd}|  D ]\}}| ||} q&| S )NZjanZfebZmarZaprZmayZjunZjulZaugsepoctZnovZdec)u   янвu   февu   марu   апрu   майu   июнu   июлu   авгu   сенu   октu   нояu   дек)itemsreplace)valuemappingZmonth_ruZmonth_enr   r   r   _translate_month   s     zJiraBaseImport._translate_monthc                 C   s*   ddddddddddddd}| | dS )	Nr            )ZLowZLowestu   Низкийu   Самый низкийu   Отложеноu   СреднийZMediumZHighu   Высокийu   Наивысшийu   КритическийZHighest)get)priorityr   r   r   r   _get_priority/   s    zJiraBaseImport._get_priorityNc                    s$  |r|d r|d d dkrPg }|d kr0|S |D ]}| d|d i q4|S |d d dkrv|d krl|S |dS |d d dkr|d kr|S | || j }| j|d	d
\}}|S |d d dkrg }|d kr|S |D ]0}| || j }| j|d	d
\}}| | q|S |d d dkrZg }|d kr8|S |D ]}| d|d i q<|S |d d dkr fdd |d krg S  |S |S |dkr| S |dkr tjjddgdD ]V}	||	jd kr֐qdd |	jd | d 	 D }
|
|}|d k	r|  S q| 
|S |S )NZcustomZschemaz=com.atlassian.jira.plugin.system.customfieldtypes:multiselectr   r   z8com.atlassian.jira.plugin.system.customfieldtypes:selectidz<com.atlassian.jira.plugin.system.customfieldtypes:userpickerF)updatezAcom.atlassian.jira.plugin.system.customfieldtypes:multiuserpickerzBcom.atlassian.jira.plugin.system.customfieldtypes:multigrouppickerzAcom.atlassian.jira.plugin.system.customfieldtypes:cascadingselectc                    s.   d| d ig}|  dr*| | d  |S )Nr   r   Zchild)r'   extend)vresultconvert_cascader   r   r0   e   s    
z=JiraBaseImport._normalize_jira_value.<locals>.convert_cascadeZdoes_not_workr(   ZCmfTaskui_form_json)Zcmf_model_namer   Z	ui_fieldsc                 S   s   i | ]\}}||qS r   r   )r   r   r-   r   r   r   r   u   s      z8JiraBaseImport._normalize_jira_value.<locals>.<dictcomp>choices)appendr'   Z_get_user_info_from_dumpZuser_keyZ_process_personZmodelsZ	CmfUiFormlistr1   r   r)   )r
   Zlocal_field_namer   Z	ext_fieldresr-   Z	user_infoZperson_Zui_formr   r   r/   r   _normalize_jira_valueA   sh    




 


z$JiraBaseImport._normalize_jira_value)N)__name__
__module____qualname____doc__r   staticmethodr   r   dictr   r    r)   r7   r   r   r   r   r      s   


r   N)typingr   Zcmf.includeZcmfr   r   r   r   r   r   <module>   s   