
    +h!                        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mZmZ d dlmZmZ d dlmZ d d	lmZmZ d d
lmZ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$m%Z& d dl'm(Z( d dl)m*Z*  e e(          Z+ e  e*                      Z, ej-        e           G d dej.                              Z/ ej-        e           G d dej.                              Z0dS )    )settings)adminmessages)IS_POPUP_VAR)unquote)update_session_auth_hash)AdminPasswordChangeFormUserChangeFormUserCreationForm)GroupUser)PermissionDenied)routertransaction)Http404HttpResponseRedirect)TemplateResponse)pathreverse)method_decorator)escape)gettextgettext_lazy)csrf_protect)sensitive_post_parametersc                   ,     e Zd ZdZdZdZd fd	Z xZS )
GroupAdminname)permissionsNc                     |j         dk    r=|                    d|j        j        j                  }|                    d          |d<    t                      j        |fd|i|S )Nr    querysetcontent_typerequest)r   getremote_fieldmodelobjectsselect_relatedsuperformfield_for_manytomany)selfdb_fieldr$   kwargsqs	__class__s        ]/var/www/html/e360mart/e360mart_env/lib/python3.11/site-packages/django/contrib/auth/admin.pyr+   z#GroupAdmin.formfield_for_manytomany   sj    =M))J(=(C(KLLB "$!2!2>!B!BF:/uww/TT'TVTTT    N)__name__
__module____qualname__search_fieldsorderingfilter_horizontalr+   __classcell__r0   s   @r1   r   r      sW        MH(U U U U U U U U U Ur2   r   c                   2    e Zd ZdZdZdddif ed          ddif ed          ddif ed	          dd
iffZddddffZeZ	e
ZeZdZdZdZdZdZd fd	Zd fd	Z fdZ fdZeedd                        Zd fd	Zedd            Zd fd	Z xZS )	UserAdminzadmin/auth/user/add_form.htmlNfields)usernamepasswordzPersonal info)
first_name	last_nameemailPermissions)	is_activeis_staffis_superusergroupsuser_permissionszImportant dates)
last_logindate_joined)wide)r?   	password1	password2)classesr>   )r?   rC   rA   rB   rF   )rF   rG   rE   rH   )r?   rA   rB   rC   )r?   )rH   rI   c                 Z    |s| j         S t                                          ||          S r3   )add_fieldsetsr*   get_fieldsets)r,   r$   objr0   s      r1   rR   zUserAdmin.get_fieldsetsC   s.     	&%%ww$$Wc222r2   c                     i }|
| j         |d<   |                    |            t                      j        ||fi |S )z7
        Use special form during user creation
        Nform)add_formupdater*   get_form)r,   r$   rS   r.   defaultsr0   s        r1   rX   zUserAdmin.get_formH   sN     ;#}HVuww99999r2   c                     t          d| j                            | j                  d          gt	                                                      z   S )Nz<id>/password/auth_user_password_changer   )r   
admin_site
admin_viewuser_change_passwordr*   get_urls)r,   r0   s    r1   r_   zUserAdmin.get_urlsR   sU     **4+DEE0  
 GG 	r2   c                 t    |                     d           o!t                                          ||          S )Nr@   )
startswithr*   lookup_allowed)r,   lookupvaluer0   s      r1   rb   zUserAdmin.lookup_allowed[   s4    $$Z000ZUWW5K5KFTY5Z5ZZr2    c                     t          j        t          j        | j                            5  |                     |||          cd d d            S # 1 swxY w Y   d S )N)using)r   atomicr   db_for_writer'   	_add_view)r,   r$   form_urlextra_contexts       r1   add_viewzUserAdmin.add_view_   s     f&9$*&E&EFFF 	D 	D>>'8]CC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	Ds   AAAc                 z   |                      |          s7|                     |          rt          j        rt	          d          t
          |i }| j        j                            | j        j	                  }d|j
        d}|                    |           t                                          |||          S )NzYour 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. )auto_populated_fieldsusername_help_text)has_change_permissionhas_add_permissionr   DEBUGr   r   r'   _meta	get_fieldUSERNAME_FIELD	help_textrW   r*   rm   )r,   r$   rk   rl   username_fieldrY   r0   s         r1   rj   zUserAdmin._add_viewe   s     ))'22 		#&&w// (HN ( '( ( (
 #" M)33DJ4MNN%'"0":
 
 	X&&&ww=AAAr2   c                    |                      |t          |                    }|                     ||          st          |>t	          t          d          | j        j        j        t          |          dz            |j
        dk    r|                     ||j                  }|                                r|                                 |                     ||d           }|                     |||           t#          d          }t%          j        ||           t)          ||j                   t-          t/          | j        j        d|j        j        d|j        j        d|j        f                    S n|                     |          }d d	t;          |j                  ifg}t>          j         !                    ||i           }	t          d
          t          |"                                          z  |	||tF          |j        v ptF          |j$        v tF          ddddd| j        j        |ddd| j        %                    |          }
| j        j        |_&        tO          || j(        pd|
          S )Nz8%(name)s object with primary key %(key)r does not exist.)r   keyPOSTzPassword changed successfully.:__change)argsr>   zChange password: %sTF)title	adminFormrk   rU   is_popupis_popup_varaddchangehas_delete_permissionrr   has_absolute_urloptsoriginalsave_as	show_savez$admin/auth/user/change_password.html))
get_objectr   rr   r   r   r~   r'   ru   verbose_namer   methodchange_password_formr|   is_validsaveconstruct_change_message
log_changer   r   successr   userr   r   r\   r   	app_label
model_namepklistbase_fieldsr   helpers	AdminFormget_usernamer   GETeach_contextcurrent_appr   change_user_password_template)r,   r$   idrk   r   rU   change_messagemsg	fieldsetsr   contexts              r1   r^   zUserAdmin.user_change_password   s   w44))'488 	#""<!VWW
(5bzz[ [     >V##,,T7<@@D}} 		!%!>!>wd!S!S~>>>>?? #...($)<<<+ O000 J000 J111
 #gZ  	 	 	$ ,,T22DXtD,<'='=>?@	M++D)R@@	 ,--t7H7H7J7J0K0KK" %5 5%4(%*%) %J$!
 
" o**733#
( #o2. 32	
 
 	
r2   c                     d|j         vr6t          |j         vr(|j                                         |_         d|j         d<   t                                          |||          S )z
        Determine 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.
        _addanother   	_continue)r|   r   copyr*   response_add)r,   r$   rS   post_url_continuer0   s       r1   r   zUserAdmin.response_add   s\     ,,W\1Q1Q"<,,..GL()GL%ww##GS2CDDDr2   r3   )re   N)re   )r4   r5   r6   add_form_templater   r~   r   rQ   r
   rU   r   rV   r	   r   list_displaylist_filterr7   r8   r9   rR   rX   r_   rb   sensitive_post_parameters_mcsrf_protect_mrm   rj   r^   r   r:   r;   s   @r1   r=   r=   (   s       7$(!	234	
?		h(LMN	
=		]
 	 
		*GHII 
 <
 
 	M DH2OLEKDMH73 3 3 3 3 3
: : : : : :    [ [ [ [ [ !D D D ^ ! DB B B B B B6 !=
 =
 =
 ! =
~E E E E E E E E E Er2   r=   N)1django.confr   django.contribr   r   django.contrib.admin.optionsr   django.contrib.admin.utilsr   django.contrib.authr   django.contrib.auth.formsr	   r
   r   django.contrib.auth.modelsr   r   django.core.exceptionsr   	django.dbr   r   django.httpr   r   django.template.responser   django.urlsr   r   django.utils.decoratorsr   django.utils.htmlr   django.utils.translationr   r   r~   django.views.decorators.csrfr   django.views.decorators.debugr   r   r   register
ModelAdminr   r=   ro   r2   r1   <module>r      sZ               * * * * * * * * 5 5 5 5 5 5 . . . . . . 8 8 8 8 8 8          3 2 2 2 2 2 2 2 3 3 3 3 3 3 ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 5 5 5 5 5 5 % % % % % % % % 4 4 4 4 4 4 $ $ $ $ $ $ ? ? ? ? ? ? ? ? 5 5 5 5 5 5 C C C C C C!!,//../H/H/J/JKK  U U U U U! U U U eE eE eE eE eE  eE eE eE eE eEr2   