Ñò
É•©Lc        	   @   sC  d  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	 „  Z e d
 „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z  d „  Z! e d „ Z" d d „ Z$ d d „ Z% d S(   sY   Helper functions for the rendering of several items on the index views and
similar pages.iÿÿÿÿ(   t   ugettext(   t	   ungettext(   t   versioncontrol(   t   check_permission(   t   Store(   t   dispatch(   t   add_percentagesc   
      C   s¯   | d } | d } t  i i d | i ƒ i ƒ  } t d d | | ƒ } t d h | d 6| d 6| d	 d
 6ƒ } t d h | d d 6| d d 6ƒ } d | }	 d | | |	 f S(   Nt   translatedsourcewordst   totalsourcewordst   pootle_path__startswiths   %d files   %d filessC   %(translated)d/%(total)d words (%(translatedpercent)d%%) translatedt
   translatedt   totalt   translatedpercentaget   translatedpercents    %(translated)d/%(total)d stringss+   <span class="string-statistics">[%s]</span>s   %s %s %s(   R   t   objectst   filtert   pootle_patht   countR   t   _(
   t   requestt   quick_statst   path_objt   translated_wordst   total_wordst
   num_storest
   file_statst
   word_statst   string_stats_textt   string_stats(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   get_item_summary#   s    



c         C   sB   h t  |  | | ƒ d 6g  d 6} | o t |  | ƒ | d <n | S(   Nt   summaryt   checks(   R   t   getcheckdetails(   R   R   R   t   show_checkst   result(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   get_item_stats5   s    
c         C   sô   g  } yÔ | i  ƒ  } | i ƒ  } | d } | i ƒ  } | i ƒ  x• | D] } | | } | ov | oo t d d | h | d 6| d | d 6ƒ }	 h t i |  | i d | g ƒd 6| d	 6|	 d
 6}
 | |
 g 7} qH qH WWn t j
 o n X| S(   s=   return a list of strings describing the results of
    checksR   s.   %(checks)d string (%(checkspercent)d%%) faileds/   %(checks)d strings (%(checkspercent)d%%) failedR   id   t   checkspercentt
   matchnamest   hreft   textt   stats(	   t   getcompletestatst   getquickstatst   keyst   sortR   R   t	   translateR   t   IOError(   R   R   t
   checklinkst   property_statsR   R   R+   t	   checknamet
   checkcountR(   t	   checklink(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyR    >   s*    

 
"
c      	   C   s‚   yh | i  ƒ  oW t d |  ƒ o t d ƒ } n t d ƒ } h t i |  | i d d g ƒd 6| d 6SWn t j
 o n Xd  S(   NR-   s   Review Suggestionss   View SuggestionsR%   t   hassuggestionR&   R'   (   t   has_suggestionsR   R   R   R-   R   R.   (   R   R   R'   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   review_linkX   s    c      
   C   s™   y | i  ƒ  d | i  ƒ  d j  oZ t d |  ƒ o t d ƒ } n t d ƒ } h t i |  | i d d d g ƒd	 6| d
 6SWn t j
 o n Xd  S(   NR
   R   R-   s   Quick Translates   View Untranslatedt
   unitstatest   fuzzyt   untranslatedR&   R'   (   R*   R   R   R   R-   R   R.   (   R   R   R'   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt
   quick_linke   s    !"c         C   s-   h t  i |  | i d g  ƒd 6t d ƒ d 6S(   NR%   R&   s   Translate AllR'   (   R   R-   R   R   (   R   R   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   translate_all_linkr   s    c         C   sE   t  d |  ƒ o1 t d ƒ } t i |  | ƒ } h | d 6| d 6Sd  S(   Nt   administrates   Manage GlossaryR&   R'   (   R   R   R   t   terminology(   R   R   R'   t   link(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   terminology_linkx   s    c         C   sE   t  d |  ƒ o1 t d ƒ } t i |  | ƒ } h | d 6| d 6Sd  S(   Nt   archives   ZIP of directoryR&   R'   (   R   R   R   t   download_zip(   R   R   R'   R>   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   zip_link   s    c         C   s“   | i  i i d j o d  S| i  i i ƒ  o t d ƒ } t d ƒ } n t d ƒ } t d ƒ } t i |  | i d ƒ } h | d 6| d 6| d 6S(   Nt   xlfs   Translate offlines+   Download XLIFF file for offline translations   Download XLIFFR&   R'   t   title(   t   translation_projectt   projectt   localfiletypet   is_monolingualR   R   t   exportR   (   R   R   R'   t   tooltipR&   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt
   xliff_linkŠ   s    c         C   s|   | i  d j oh | i i i ƒ  o t d ƒ } t d ƒ } n t d ƒ } t d ƒ } h d | i d 6| d 6| d	 6Sd  S(
   Nt    t   Exports   Export translationst   Downloads   Download files   %s/download/R&   R'   RD   (   t   fileRE   RF   RH   R   R   (   R   R   R'   RJ   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   download_link›   s    c         C   si   | i  o[ t d |  ƒ oK t i | i  ƒ o8 t i |  | ƒ } t d ƒ } h | d 6| d 6| d 6Sd  S(   Nt   commits   Commit to VCSR&   R'   R>   (   t   abs_real_pathR   R   t   hasversioningR   RQ   R   (   R   R   R>   R'   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   commit_linkª   s    -c         C   si   | i  o[ t d |  ƒ oK t i | i  ƒ o8 t i |  | ƒ } t d ƒ } h | d 6| d 6| d 6Sd  S(   NRQ   s   Update from VCSR&   R'   R>   (   RR   R   R   RS   R   t   updateR   (   R   R   R>   R'   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   update_link´   s    -c         C   sH   g  } x; | D]3 } | |  | ƒ } | d  j	 o | i | ƒ q q W| S(   N(   t   Nonet   append(   R   R   t	   linkfuncst   linkst   linkfuncR>   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   _gen_link_list¾   s     c         C   s(   t  t t t t t g } t |  | | ƒ S(   s8   returns a list of links for store items in translate tab(   R:   R;   RV   RT   RP   RK   R\   (   R   R   RY   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   store_translate_linksÆ   s    c         C   s%   t  t t t t g } t |  | | ƒ S(   s5   returns a list of links for store items in review tab(   R6   RV   RT   RP   RK   R\   (   R   R   RY   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   store_review_linksË   s    c         C   s   t  |  | t t t t g ƒ S(   s<   returns a list of links for directory items in translate tab(   R\   R:   R;   RB   R?   (   R   R   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   directory_translate_linksÐ   s    c         C   s   t  |  | t t g ƒ S(   s9   returns a list of links for directory items in review tab(   R\   R6   RB   (   R   R   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   directory_review_linksÔ   s    c         C   sŠ   |  d } |  d } | | } t  d d | | ƒ } d } t  d d | | ƒ } t  d d	 | | ƒ } d
 i | | g ƒ } h | d 6| d 6S(   sP   Provides a dictionary with two textual descriptions of the work
    outstanding.t   untranslatedsourcewordst   fuzzysourcewordss   %d word needs attentions   %d words need attentionu    s   %d word untranslateds   %d words untranslateds   %d word needs reviews   %d words need reviewu     
t	   todo_textt   todo_tooltip(   R   t   join(   R   R9   R8   t
   todo_wordsRc   Rd   t   untranslated_tooltipt   fuzzy_tooltip(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   stats_descriptionsÜ   s    


c      	   C   sú   y¯ t  | i ƒ  ƒ } h | d 6| d 6t d h | d d 6ƒ d 6| i d 6t |  | | | ƒ d 6} | i d	 d
 ƒ } | o t d d | | ƒ | d <n | i t | ƒ ƒ WnD t	 j
 o8 } h | d 6| i d 6| i
 d 6h d d	 6d 6} n X| S(   s}   Template variables for each row in the table.

    make_directory_item() and make_store_item() will add onto these variables.R&   t   datas   %(percentage)d%% completeR   t
   percentageRJ   RD   R(   t   errorsi    s   Error reading %d files   Error reading %d filest   errortooltipi   (   R   R*   R   t   nameR#   t   getR   RU   Ri   R.   t   strerror(   R   R   t   actionR!   R   t   infoRl   t   e(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   make_generic_itemò   s(    


c         C   s§   t  i |  | i ƒ } | d j } t |  | | | ƒ } | d j o t |  | ƒ | d <n/ | d j o t |  | ƒ | d <n g  | d <| i h d d 6t d 6ƒ | S(   Nt   reviewR-   t   actionst   foldert   icont   isdir(   R   t   show_directoryR   Rt   R_   R`   RU   t   True(   R   t	   directoryt   links_requiredRq   R!   t   item(    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   make_directory_item  s    
	c         C   sÉ   t  i |  | i ƒ } | d j } t |  | | | ƒ } | d j o t |  | ƒ | d <n/ | d j o t |  | ƒ | d <n g  | d <t  i |  | i d d g ƒ| d <| i h d d 6t d	 6ƒ | S(
   NRu   R-   Rv   R7   s   fuzzy,untranslatedt	   href_todot   pageRx   t   isfile(   R   R-   R   Rt   R]   R^   RU   R{   (   R   t   storeR}   Rq   R!   R~   (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   make_store_item  s    
	N(&   t   __doc__t   django.utils.translationR    R   R   t   translate.storageR   t   pootle_app.models.permissionsR   t   pootle_store.modelsR   t   pootle_app.views.languageR   t   pootle_misc.utilR   R   t   FalseR#   R    R6   R:   R;   R?   RB   RK   RP   RT   RV   R\   R]   R^   R_   R`   Ri   Rt   RW   R   R„   (    (    (    sA   /var/www/Pootle/local_apps/pootle_app/views/language/item_dict.pyt   <module>   s8   													
	
						