
    {h                     :    d dl mZ d dl d dlmZ  G d d      Zy)    )List)*)fieldsc                   n    e Zd ZdZd Zed        Zedee   defd       Z	ed        Z
ed        Zdd
Zy	)JiraBaseImportuE   Базовый класс загрузки объектов из jirac                     ddl m} || _        | j                  | j                  j                  d         | _        d| _        y )Nr   )	CmfImportimport_settingsF)common.models.cmf_importr	   
cmf_import_normalize_settingsjson_settingssettings
has_errors)selfr   r	   s      ./modules/jira/base_import.py__init__zJiraBaseImport.__init__   s5    6%/001N1NO`1ab    c                     t         j                  d|       }|r|j                         j                         n| }d| d| d| dS )Nz(?<=\().+(?=\))z<li>z <a href="/desk?obj=Task:z">z	</a></li>)researchgrouplower)titlekey	link_types      r   _get_link_for_descriptionz(JiraBaseImport._get_link_for_description   sH    II0%8	1:IOO%++-	i[ 9#bYOOr   r   returnc                 4    | D ci c]  }|d   |
 c}S c c}w )Nname )r   ss     r   r   z"JiraBaseImport._normalize_settings   s    &./&	1///s   c                 x    ddddddddd	d
ddd}|j                         D ]  \  }}| j                  ||      }  | S )Njanfebmaraprmayjunjulaugsepoctnovdec)u   янвu   февu   марu   апрu   майu   июнu   июлu   авгu   сенu   октu   нояu   дек)itemsreplace)valuemappingmonth_rumonth_ens       r   _translate_monthzJiraBaseImport._translate_month   s`     
 #*--/ 	6HhMM(H5E	6r   c                     i dddddddddddd	d
d	dd	dd	ddddddddddddddddddddddddddd
}|j                  |       S )NTrivialu   ТривиальныйMinoru   Незначительныйu   ОтложеноLowestu   Самый низкийu   Низшийu   МинимальныйLowu   Низкийu   Среднийr   Mediumu   ОбычныйHigh   u   Высокийu   Высший            )
u   НаивысшийHighestMajoru   СерьезныйCriticalu   Критичныйu   КритическийBlockeru   Блокерu   Блокирующий)get)priorityr3   s     r   _get_priorityzJiraBaseImport._get_priority/   s   
r
$b
 R
 +B	

 
 b
 &r
 B
 %b
 2
 B
 a
 a
 a
 A
  a!
" A#
$ #$"#"#&'&'7
: {{8$$r   Nc                 P   |r|d   r|d   d   j                  dd      d   }|dv r%g }||S |D ]  }|j                  d|d   i        |S |d	k(  r"g }||S |D ]  }|j                  d|i        |S |d
v r4||S d }|j                  d      rt        j	                  |d   dd      }|S |dk(  rJ||S 	 	 | j                  || j                           }| j                  |dd      \  }
}|
st        d      |
S |dk(  rdg }||S |D ]W  }	 	 | j                  || j                           }| j                  |dd      \  }
}|
st        d      |j                  |
       Y |S |dv r]g }||S t        |t              r|D ]  }|j                  d|d   i        |S t        |t              r|j                  d|d   i       |S |dk(  rfd|g S  |      S |S |dk(  r| S |dk(  r	 | j                  |      \  }}|S |S # t        $ r}	t        |	 d      d }	~	ww xY w# t        $ rL}	| xj                  dz  c_	        | j                  j                  d|d    d| d| d|	 dd       Y d }	~	y d }	~	ww xY w# t        $ r}	t        |	 d      d }	~	ww xY w# t        $ rM}	| xj                  dz  c_	        | j                  j                  d|d    d| d| d|	 dd       Y d }	~	d }	~	ww xY w# t        $ r( | j                  j                  d | d!d"d#       d$}Y |S w xY w)%Ncustomschema:rB   r?   )multiselectmulticheckboxesr    r2   labels)selectradiobuttons-    )r,   length
userpickeruH   . Возможно пользователь был удален в Jira.F)createupdateu=   Пользователь не найден в системе.u0   Не удалось присвоить полю z (u   ) значение z. zERR-0038	CmfPerson)obj_typemultiuserpicker)multigrouppickergrouppickercascadingselectc                 n    d| d   ig}| j                  d      r|j                   | d                |S )Nr    r2   child)rK   extend)vresultconvert_cascades     r   rh   z=JiraBaseImport._normalize_jira_value.<locals>.convert_cascade   s9    %qz23FuuW~oaj&AB!Mr   does_not_workrL   u   Приоритет 'uc   ' не найден. Возможно приоритет недоступен для проектаzERR-0136CmfTaskr   )splitappendrK   cmfutiltranslit_strip_get_user_info_from_dumpuser_key	Exception_process_personr   r   	log_error
isinstancelistdict_get_cached_priority)r   local_field_namer2   	ext_fieldcustom_field_typesresrf   	value_key	user_infoexcperson_priority_idrh   s                @r   _normalize_jira_valuez$JiraBaseImport._normalize_jira_valueP   su   8,!*8!4X!>!D!DS!!LR!P!%GG=J 5AJJ'
345
#x/=J ,AJJ{+,
#'AA= L 	99W% ' 6 6g! !7 !I
 ! #|3= L z$($A$A%BV$W	 !% 4 4YuUZ 4 [IFA!'(ghh!M $'88=J A~(,(E(EaFV(WI %)$8$85Y^$8$_	%"+,k"ll

6*" 
#'JJ=JeT*" 8

FAfI#678 
  t,JJf67
#'88"
 =I&u--L.9z)	 !%!:!:5!AQ O % z'3%/w(xyyz !  OOq(OOO--J9U[K\J]]_`p_q  rE  FK  EL  LN  OR  NS  T"!, . 
      ) ~"+se3{,|"}}~ % 1,11NyY_O`Naacdtcu  vI  JK  IL  LN  OR  NS  T&%0 2  D   ))*5' 2e f&	 *    s   9H %H$ I<-5J-K4 	H!HH!!H$ $	I9-AI44I9<	JJJJ	K1$AK,,K14-L%$L%)N)__name__
__module____qualname____doc__r   staticmethodr   r   rv   r   r6   rM   r   r!   r   r   r   r      su    O  P P
 0d4j 0T 0 0  & % %@jr   r   N)typingr   cmf.includecmfr   r   r!   r   r   <module>r      s      r rr   