a
    Dg
                     @   sp   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	 G dd deZ
G dd	 d	eZG d
d deZdS )    )forms)AuthenticationForm)PasswordChangeForm)PasswordResetForm)gettext_lazyc                       s   e Zd Zejde dZejejdedidddZ	ej
ddZi ejd	ed
iZd fdd	Zedd Zdd Z  ZS )	LoginForm   )
max_lengthwidgetplaceholderzEnter password)attrsF)r
   strip)requiredinvalid_loginzDYour %(username_field)s and password didn't match. Please try again.Nc                    sN   t  j|d|i| tdd| jji | jd jjd< d| jd jjd< d S )Nrequestz"Enter your %(username_field_name)sZusername_field_nameusernamer    	autofocus)super__init__r   username_fieldverbose_namefieldsr
   r   )selfr   argskwargs	__class__ W/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/forms/auth.pyr      s    
zLoginForm.__init__c                 c   s*   | j  D ]}|dvr
|| | fV  q
d S )N)r   passwordrememberr   keysr   
field_namer   r   r   extra_fields$   s    zLoginForm.extra_fieldsc                 C   s   t j| jd dd| jjidS )Nr   r   )codeparams)r   ZValidationErrorerror_messagesr   r   )r   r   r   r   get_invalid_login_error*   s
    
z!LoginForm.get_invalid_login_error)N)__name__
__module____qualname__r   Z	CharFieldZ	TextInputr   ZPasswordInputr   r    ZBooleanFieldr!   r   r)   r   propertyr&   r*   __classcell__r   r   r   r   r      s(   	
r   c                   @   s,   e Zd ZejeddddZedd ZdS )r   z/Enter your email address to reset your passwordr   T)labelr	   r   c                 c   s*   | j  D ]}|dvr
|| | fV  q
d S )N)emailr"   r$   r   r   r   r&   9   s    zPasswordResetForm.extra_fieldsN)	r+   r,   r-   r   Z
EmailFieldr   r1   r.   r&   r   r   r   r   r   2   s   r   c                       s    e Zd ZdZ fddZ  ZS )r   z
    Since this is displayed as part of a larger form, this differs from the vanilla Django
    PasswordChangeForm as follows:
    * the old-password field is not auto-focused
    * Fields are not marked as required
    c                    sb   t  j|i | z| jd jjd= W n ty8   Y n0 d| jd _d| jd _d| jd _d S )NZold_passwordr   FZnew_password1Znew_password2)r   r   r   r
   r   KeyErrorr   )r   r   r   r   r   r   r   H   s    zPasswordChangeForm.__init__)r+   r,   r-   __doc__r   r/   r   r   r   r   r   @   s   r   N)Zdjangor   Zdjango.contrib.auth.formsr   r   ZDjangoPasswordChangeFormr   ZDjangoPasswordResetFormZdjango.utils.translationr   r   r   r   r   r   <module>   s   *