Ñò
éôÉLc           @   s  d  d k  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 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 d  d k l Z d  d k l  Z  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/ l0 Z0 d  d k1 l2 Z2 d  d k3 l4 Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 d e f d  „  ƒ  YZ9 d! „  Z: d" „  Z; d# „  Z< d S($   iÿÿÿÿN(   t   ugettext(   t	   ungettext(   t   get_object_or_404(   t   render_to_response(   t   RequestContext(   t   forms(   t   BaseModelFormSet(   t   PermissionDenied(   t   l(   t   LiberalModelChoiceField(   t   Project(   t
   Submission(   t   get_stats_headings(   t   add_percentagest   stats_descriptions(   t   tr_lang(   t   gentopstats_projectt   gentopstats_root(   t
   pagelayout(   t   Language(   t   TranslationProject(   t   util(   t   get_profile(   t   getprojects(   t   get_matching_permissionst   check_permission(   t   admin_permissions(   t	   Directoryc         C   s   |  d  S(   Ni   (    (   t   query(    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   limit3   s    c         C   s;   y t  i i d |  ƒ i ƒ  SWn t  i j
 o d SXd  S(   Nt   translation_projectt    (   R   t   objectst   filtert   latestt   DoesNotExist(   R   (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   get_last_action6   s    c         C   s×   d | i  i | i i f } t | i ƒ  ƒ } h | i  i d 6| d 6t | i  i ƒ d 6| d 6t | ƒ d 6t d h | d d	 6ƒ d
 6} | i	 d d ƒ } | o t
 d d | | ƒ | d <n | i t | ƒ ƒ | S(   Ns   /%s/%s/t   codet   hreft   titlet   datat   lastactivitys   %(percentage)d%% completet   translatedpercentaget
   percentaget   tooltipt   errorsi    s   Error reading %d files   Error reading %d filest   errortooltip(   t   languageR%   t   projectR   t   getquickstatsR   t   fullnameR$   t   _t   getR   t   updateR   (   t   requestR   R&   t   projectstatst   infoR-   (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   make_language_item<   s    c         C   s•  t  t d | ƒ} t t |  i ƒ | i ƒ |  _ t d |  ƒ p
 t ‚ n | i	 i
 ƒ  } g  } | i ƒ  D] } | t |  | ƒ qj ~ } | i d „  ƒ t | ƒ } t | i ƒ  ƒ } | d }	 t | ƒ }
 h h | i d 6| i d 6t d d | h | d 6|	 d	 6ƒ d
 6d 6| i d 6t d ƒ d 6| d 6t i ƒ  d 6|
 d 6t ƒ  d 6h t d ƒ d 6t d ƒ d 6t d ƒ d 6d 6} t d | d t |  ƒ ƒS(   s+   page listing all languages added to projectR%   t   viewc         S   s   t  i |  d  | d  ƒ S(   R'   (   t   localet   strcoll(   t   xt   y(    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   <lambda>X   s    R*   t   names0   %(languages)d language, %(average)d%% translateds1   %(languages)d languages, %(average)d%% translatedt	   languagest   averaget   statsR0   t   descriptiont   Admint	   adminlinkt   instancetitlet   topstatst   statsheadingss   Translations are completet
   translateds7   Translations need to be checked (they are marked fuzzy)t   fuzzyt   Untranslatedt   untranslatedt   translationlegends   project/project.htmlt   context_instance(   R   R
   R   R   t   usert	   directoryt   permissionsR   R   t   translationproject_sett   allt   iteratorR9   t   sortt   lenR   R1   R   R%   R2   R   RD   R3   R   t	   get_titleR   R   R   (   R6   t   project_codeR0   t   translation_projectst   _[1]R   t   itemst   languagecountt   totalsRB   RH   t   templatevars(    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   project_language_indexO   s8    
0




t   TranslationProjectFormSetc           B   s    e  Z e d  „ Z e d „ Z RS(   c         C   s,   t  t |  ƒ i | | | ƒ } | i ƒ  | S(   N(   t   superRa   t   save_existingt   process_extra_fields(   t   selft   formt   instancet   committ   result(    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyRc   u   s    
c         C   s)   t  t |  ƒ i | | ƒ } | i ƒ  | S(   N(   Rb   Ra   t   save_newRd   (   Re   Rf   Rh   Ri   (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyRj   z   s    
(   t   __name__t
   __module__t   TrueRc   Rj   (    (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyRa   t   s   c            s  t  i i d | ƒ ‰  t t |  i ƒ ˆ  i ƒ |  _ t d |  ƒ p t	 t
 d ƒ ƒ ‚ n ˆ  i ƒ  ‰ d t i f ‡  ‡ f d †  ƒ  Y} t i i d ˆ  ƒ i d ƒ } h  } h ˆ  i d 6ˆ  i d 6| d <d	 | d
 <d | d <d „  } t i |  d t | | d d d | d t d | d t ƒS(   s%   adding and deleting project languagesR%   t   administrates2   You do not have rights to administer this project.t   TranslationProjectFormc              s³   e  Z ˆ d j	 o" e i d  e d e d ƒ ƒ Z n e i d e	 i
 i d ˆ  i ƒ d ˆ  i d e i ƒ Z e d e d ƒ d e i
 i d ˆ  ƒ ƒ Z d	 d d
 „  ƒ  YZ d „  Z RS(   t   requiredt   labels   Update from templatest   querysett   pkt   initialt   widgetR   t   translationproject__projectt   Metac           B   s   e  Z d  Z e Z RS(   t   existing_language(   Rk   Rl   t   prefixR   t   model(    (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyRw   ’   s   c         S   s}   |  i  i d  j	 of |  i i d d  ƒ o |  i  i ƒ  n |  i i d d  ƒ p |  i  i i ƒ  o |  i  i ƒ  qy n d  S(   Nt
   initializeR5   (	   Rg   Rs   t   Nonet   cleaned_dataR4   R{   t   storest   countt   update_from_templates(   Re   (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyRd   –   s
    *N(    (   Rk   Rl   R|   R   t   BooleanFieldt   FalseR3   R5   t   ModelChoiceFieldR
   R    R!   Rs   t   HiddenInputR0   R	   R   t   excludeR/   Rw   Rd   (    (   t   current_projectt   template_translation_project(    s2   /var/www/Pootle/local_apps/pootle_project/views.pyRo   ˆ   s   "!R0   t   pootle_pathR@   s   translation-projectst   formidt   changetransprojectst
   submitnamec         S   s   d  t  |  i d ƒ |  i f S(   s   <a href="%s">%s</a>s   admin_permissions.html(   R   Rˆ   R/   (   Rg   (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyR?   ¤   s    s   project/project_admin.htmlt	   linkfieldR/   Rr   t
   can_deleteRf   t   formset(   R
   R    R4   R   R   RP   RQ   RR   R   R   R3   t   get_template_translationprojectR   t	   ModelFormR   R!   t   order_byR%   R2   R   t   editRm   Ra   (   R6   RY   Ro   Rr   t
   model_argst   link(    (   R†   R‡   s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   project_admin   s    "

	c         C   s‘   t  t d | ƒ} t t |  i ƒ | i ƒ |  _ t d |  ƒ p t t	 d ƒ ƒ ‚ n h | d 6| i d 6| i
 d d 6} t |  | i d | ƒ S(	   NR%   Rn   s2   You do not have rights to administer this project.R0   RQ   i   t	   feed_paths   project/admin_permissions.html(   R   R
   R   R   RP   RQ   RR   R   R   R3   Rˆ   R   (   R6   RY   R0   t   template_vars(    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   project_admin_permissions¨   s    
c         C   s¼   t  t |  i ƒ t i i ƒ |  _ t d |  ƒ p
 t ‚ n t	 ƒ  } h t
 d ƒ d 6t |  ƒ d 6| d 6t i ƒ  d 6h t
 d ƒ d 6t
 d	 ƒ d
 6t
 d ƒ d 6d 6} t d | t |  ƒ ƒ S(   s   page listing all projectsR:   t   Projectst   projectlinkt   projectsRH   RG   s   Translations are completeRJ   s7   Translations need to be checked (they are marked fuzzy)RK   RL   RM   RN   s   project/projects.html(   R   R   RP   R   R    t   rootRR   R   R   R   R3   R   R   RX   R   R   (   R6   RH   R_   (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   projects_index·   s    !
	(=   R;   t   django.utils.translationR    R3   R   t   django.shortcutsR   R   t   django.templateR   t   djangoR   t   django.forms.modelsR   t   django.core.exceptionsR   t   pootle_misc.baseurlR   t   pootle_misc.formsR	   t   pootle_project.modelsR
   t   pootle_statistics.modelsR   t   pootle_app.views.language.viewR   t#   pootle_app.views.language.item_dictR   R   t   pootle.i18n.gettextR   t   pootle_app.views.top_statsR   R   t   pootle_app.viewsR   t   pootle_language.modelsR   t    pootle_translationproject.modelsR   t   pootle_app.views.adminR   t   pootle_profile.modelsR   t   pootle_app.views.index.indexR   t   pootle_app.models.permissionsR   R   t"   pootle_app.views.admin.permissionsR   t   pootle_app.modelsR   R   R$   R9   R`   Ra   R•   R˜   R   (    (    (    s2   /var/www/Pootle/local_apps/pootle_project/views.pyt   <module>   sB   				%	)	