ó
ø¢TQc           @   sv  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z m Z m	 Z	 d  d l
 m Z m Z d  d l m Z d  d l m Z d  d l m Z m Z d  d	 l m Z d  d
 l m Z d  d l m Z d  d l m Z d  d l m Z m Z d  d l m  Z  d  d l! m" Z" e e  ƒ Z# d e j$ f d „  ƒ  YZ% d e j$ f d „  ƒ  YZ& e j' j( e e% ƒ e j' j( e e& ƒ d S(   iÿÿÿÿ(   t   transaction(   t   settings(   t   admin(   t   UserCreationFormt   UserChangeFormt   AdminPasswordChangeForm(   t   Usert   Group(   t   messages(   t   PermissionDenied(   t   HttpResponseRedirectt   Http404(   t   get_object_or_404(   t   TemplateResponse(   t   escape(   t   method_decorator(   t   ugettextt   ugettext_lazy(   t   csrf_protect(   t   sensitive_post_parameterst
   GroupAdminc           B   s&   e  Z d Z d Z d Z d d „ Z RS(   t   namet   permissionsc         K   s_   | j  d k r@ | j d | j j j ƒ } | j d ƒ | d <n  t t |  ƒ j | d | | S(   NR   t   querysett   content_typet   request(	   R   t   gett   relt   tot   objectst   select_relatedt   superR   t   formfield_for_manytomany(   t   selft   db_fieldR   t   kwargst   qs(    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyR       s
    (   s   name(   s   name(   s   permissionsN(   t   __name__t
   __module__t   search_fieldst   orderingt   filter_horizontalt   NoneR    (    (    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyR      s   t	   UserAdminc        	   B   s+  e  Z d  Z d Z d i d d 6f e d ƒ i d d 6f e d ƒ i d  d 6f e d ƒ i d! d 6f f Z d i d" d 6d# d 6f f Z e Z	 e
 Z e Z d$ Z d% Z d& Z d' Z d( Z d d „ Z d d „ Z d „  Z d „  Z e ƒ  e e j d d d „ ƒ ƒ ƒ Z e ƒ  d d „ ƒ Z d d „ Z RS()   s   admin/auth/user/add_form.htmlt   usernamet   passwordt   fieldss   Personal infot
   first_namet	   last_namet   emailt   Permissionst	   is_activet   is_stafft   is_superusert   groupst   user_permissionss   Important datest
   last_logint   date_joinedt   widet   classest	   password1t	   password2c         C   s&   | s |  j  St t |  ƒ j | | ƒ S(   N(   t   add_fieldsetsR   R+   t   get_fieldsets(   R!   R   t   obj(    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyR?   =   s    c         K   sk   i  } | d k rB | j i |  j d 6t j j |  j ƒ d 6ƒ n  | j | ƒ t t |  ƒ j	 | | |  S(   s7   
        Use special form during user creation
        t   formR.   N(
   R*   t   updatet   add_formR   t   utilt   flatten_fieldsetsR>   R   R+   t   get_form(   R!   R   R@   R#   t   defaults(    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyRF   B   s    	
c         C   sE   d d l  m } | d d |  j j |  j ƒ f ƒ t t |  ƒ j ƒ  S(   Niÿÿÿÿ(   t   patternst    s   ^(\d+)/password/$(   t   django.conf.urlsRH   t
   admin_sitet
   admin_viewt   user_change_passwordR   R+   t   get_urls(   R!   RH   (    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyRN   O   s
    c         C   s,   | j  d ƒ r t St t |  ƒ j | | ƒ S(   NR-   (   t
   startswitht   FalseR   R+   t   lookup_allowed(   R!   t   lookupt   value(    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyRQ   V   s    RI   c         C   s¯   |  j  | ƒ s? |  j | ƒ r6 t j r6 t d ƒ ‚ n  t ‚ n  | d  k rT i  } n  |  j j j	 |  j j
 ƒ } i d d 6| j d 6} | j | ƒ t t |  ƒ j | | | ƒ S(   Ns¯   Your user does not have the "Change user" permission. In order to add users, Django requires that your user account have both the "Add user" and "Change user" permissions set.t   auto_populated_fieldst   username_help_text(    (   t   has_change_permissiont   has_add_permissionR   t   DEBUGR   R	   R*   t   modelt   _metat	   get_fieldt   USERNAME_FIELDt	   help_textRB   R   R+   t   add_view(   R!   R   t   form_urlt   extra_contextt   username_fieldRG   (    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyR^   \   s    
		c   
      C   sŽ  |  j  | ƒ s t ‚ n  t |  j | ƒ d | ƒ} | j d k r– |  j | | j ƒ } | j ƒ  r¥ | j ƒ  t	 d ƒ } t
 j | | ƒ t d ƒ Sn |  j | ƒ } d  i t | j ƒ d 6f g } t j j | | i  ƒ } i t d ƒ t | j ƒ  ƒ d 6| d 6| d	 6| d
 6d | j k d 6t d 6t d 6t d 6t d 6t d 6|  j j d 6| d 6t d 6t d 6}	 t | |  j p{d |	 d |  j j ƒS(   Nt   pkt   POSTs   Password changed successfully.s   ..R.   s   Change password: %st   titlet	   adminFormR_   RA   t   _popupt   is_popupt   addt   changet   has_delete_permissionRV   t   has_absolute_urlt   optst   originalt   save_ast	   show_saves$   admin/auth/user/change_password.htmlt   current_app(   RV   R	   R   R   t   methodt   change_password_formRc   t   is_validt   saveR   R   t   successR
   R*   t   listt   base_fieldsR   t   helperst	   AdminFormt   _R   t   get_usernamet   REQUESTt   TrueRP   RY   RZ   R   t   change_user_password_templateRK   R   (
   R!   R   t   idR_   t   userRA   t   msgt	   fieldsetsRe   t   context(    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyRM   {   s@    	

	c         C   sJ   d | j  k r. d | j  k r. d | j  d <n  t t |  ƒ j | | | ƒ S(   sÓ   
        Determines the HttpResponse for the add_view stage. It mostly defers to
        its superclass implementation but is customized because the User model
        has a slightly different workflow.
        t   _addanotherRf   i   t	   _continue(   Rc   R   R+   t   response_add(   R!   R   R@   t   post_url_continue(    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyR†   ¢   s    N(   s   usernames   password(   R/   R0   s   email(   R3   R4   R5   s   groupsR7   (   R8   R9   (   R:   (   s   usernameR<   R=   (   s   usernames   emailR/   R0   R4   (   R4   R5   R3   s   groups(   s   usernameR/   R0   s   email(   s   username(   s   groupsR7   (   R%   R&   t   add_form_templateR*   R~   Rz   R‚   R>   R   RA   R   RC   R   Rr   t   list_displayt   list_filterR'   R(   R)   R?   RF   RN   RQ   R   t   csrf_protect_mR    t   commit_on_successR^   RM   R†   (    (    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyR+   $   s:   
		&N()   t	   django.dbR    t   django.confR   t   django.contribR   t   django.contrib.auth.formsR   R   R   t   django.contrib.auth.modelsR   R   R   t   django.core.exceptionsR	   t   django.httpR
   R   t   django.shortcutsR   t   django.template.responseR   t   django.utils.htmlR   t   django.utils.decoratorsR   t   django.utils.translationR   R   Rz   t   django.views.decorators.csrfR   t   django.views.decorators.debugR   R‹   t
   ModelAdminR   R+   t   sitet   register(    (    (    s2   ../Django//lib/python/django/contrib/auth/admin.pyt   <module>   s&   Ž