Ñò
ó(¯Lc           @   s*  d  d k  l Z d  d k l Z d  d k l Z d  d k l Z d  d k	 l
 Z
 d  d k l Z d  d k l Z d  d k l Z d  d	 k l Z d  d
 k l Z l Z l Z l Z d  d k l Z d  d k l Z d „  Z d „  Z e e e i d ƒ d „  ƒ ƒ ƒ Z e e i d ƒ d „  ƒ ƒ Z  d S(   iÿÿÿÿ(   t   settings(   t   ugettext(   t   render_to_response(   t   RequestContext(   t   forms(   t   commit_on_success(   t   TerminologyExtractor(   t   get_translation_project(   t   util(   t   Storet   Unitt   PARSEDt   LOCKED(   t   unit_form_factory(   t   redirectc         C   sû   t  ƒ  } |  | _ | i |  ƒ | d  j	 o | i | ƒ n g  | _ x8 | i ƒ  D]* } | | i j o | i i | ƒ qS qS Wx | D] }	 | i	 |	 ƒ qˆ Wx | D] }
 | i
 |
 d ƒ q¦ Wx4 | i ƒ  D]& \ } } | i
 d | | f d ƒ qÍ W| S(   Nt	   developers   (poterminology) %s (%d)
t
   translator(   R
   t   sourcet   setidt   Nonet   merget   pending_suggestionst   keyst   targett   appendt   addlocationt   addnotet	   iteritems(   t   termt   unitt   targetst	   locationst   sourcenotest
   transnotest
   filecountst   termunitR   t   locationt
   sourcenotet   filenamet   count(    (    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyt   create_termunit$   s(    			    c         C   sc   y* |  i  i d d ƒ i d d t ƒd SWn t j
 o n X|  i i ƒ  o d Sd |  i i S(   Nt   name__startswiths   pootle-terminology.t   namet   flati    s   pootle-terminology.po(   t   storest   filtert   values_listt   Truet
   IndexErrort   projectt   is_monolingualt   localfiletype(   t   translation_project(    (    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyt   get_terminology_filename6   s    *t   administratec         C   sb  h | d 6| i  d 6| i d 6| i d 6} t | ƒ } |  i d j o|  i d oôt d | i i i	 d t
 | i i i ƒ ƒ } xG | i i ƒ  D]6 } | i i d	 ƒ o q’ n | i | i | i ƒ q’ W| i d
 t ƒ } | i | d d ƒ} t i i d | i d | d | ƒ \ } } | i }	 t | _ | i ƒ  | p | i i ƒ  n t | i ƒ  d d ƒ }
 t  t! t" i# |
 ƒ t" i$ ƒ }
 xa t% | |
  ƒ D]O \ } \ } } | | _& | | _' | i ƒ  x | i( D] } | i) | ƒ qÒWqšW|	 | _ | i t* j  o t* | _ n | i ƒ  | | d <t+ | ƒ | d <t, | i d ƒ St- d | d t. |  ƒ ƒS(   sI   generate glossary of common keywords and phrases from translation projectR4   t   languageR1   t	   directoryt   POSTt   extractt
   accelcharst   sourcelanguages   pootle-terminology.R(   t
   nonstopmini   t   parentR*   t   totalsourcewordsg{®Gáz”?t   storet	   termcounts   terminology_manage.htmls   terminology/extract.htmlt   context_instance(/   R7   R1   R8   R5   t   methodR9   R   t   checkert   configt   accelmarkerst   strt   source_languaget   codeR,   t   iteratorR*   t
   startswitht   processunitst   unitst   pootle_patht   extract_termsR(   t   filter_termsR	   t   objectst   get_or_createt   stateR   t   savet   deletet   intt   getquickstatst   mint   maxR    t   MIN_AUTOTERMSt   MAX_AUTOTERMSt	   enumerateR@   t   indexR   t   add_suggestionR   t   lenR   R   R   (   t   requestR4   t   template_varst   terminology_filenamet	   extractorR@   t   termst	   termunitst   createdt   oldstatet   maxunitsR]   t   scoreR   t
   suggestion(    (    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyR:   B   sT    

 		
 		

 	

c            ss  h | d 6| i  d 6| i d 6| i i d 6| i d 6d d 6d d	 6} yú t | ƒ } t i i d
 | i | ƒ ‰  ˆ  | d <t	 | i  d ƒ } | i
 d =| i
 d =| i
 d =| i
 d =| i d =| i d =| i d =| i d =d | f ‡  ‡ f d †  ƒ  Y‰ t i |  d t | d  d  d ˆ  i d t d ˆ d d d d d g ƒSWn, t i j
 o t d | d t |  ƒ ƒSXd  S(   NR4   R7   R1   RH   R8   s   terminology-managet   formidt   changeterminologyt
   submitnameRN   R@   i   t   target_ft   idt   translator_commentRS   t   TermUnitFormc              sz   e  Z e i d  e i i d ˆ  i ƒ d ˆ  i d e i ƒ Z	 e i
 d e d e i ƒ Z ‡  f d †  Z ‡ ‡  f d †  Z RS(   t   querysett   pkt   initialt   widgett   requiredc            s8   |  i  d } |  i i d  j o ˆ  i ƒ  d } n | S(   NR]   i   (   t   cleaned_datat   instanceRo   R   t	   max_index(   t   selft   value(   t
   term_store(    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyt   clean_indexš   s    c            s   t  ˆ  |  ƒ i ƒ  } | oa ˆ i | d ƒ } | o/ | i |  i i j o t i t d ƒ ƒ ‚ n |  i i | d ƒ n | S(   Ni    s   Please correct the error below.(	   t   supert   clean_source_ft   findidRo   Rx   R   t   ValidationErrort   _R   (   Rz   R{   t   existing(   Rq   R|   (    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyR   ¡   s    (   t   __name__t
   __module__R   t   ModelChoiceFieldR	   RQ   R-   Rs   t   HiddenInputR@   t   IntegerFieldt   FalseR]   R}   R   (    (   R|   Rq   (    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyRq   •   s   6s   terminology/manage.htmlRr   t
   can_deletet   formt   excludeRB   (   R7   R1   RH   R8   R5   R	   RQ   t   getRN   R   t   base_fieldst   declared_fieldsR   t   editR
   R   RM   R/   t   DoesNotExistR   R   (   R`   R4   Ra   Rb   t   unit_form_class(    (   R|   Rq   s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyt   managey   s8    












N(!   t   django.confR    t   django.utils.translationR   R‚   t   django.shortcutsR   t   django.templateR   t   djangoR   t   django.db.transactionR   t   translate.tools.poterminologyR   t   pootle_app.views.language.viewR   t   pootle_app.views.adminR   t   pootle_store.modelsR	   R
   R   R   t   pootle_store.formsR   t   pootle_misc.baseurlR   R(   R5   t   has_permissionR:   R“   (    (    (    s6   /var/www/Pootle/local_apps/pootle_terminology/views.pyt   <module>   s$   "		5