U
    >id
                     @   s   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
 d dlmZ G dd dejZG d	d
 d
ejZG dd deZG dd dejZdS )    )forms)password_validation)RegexValidator)gettext_lazy)app_settings)get_adapterc                       s.   e Zd Zdd fddZ fddZ  ZS )
EmailFieldN)returnc                    sB   | dtd | dtjddtddd t j|| d S )NlabelZEmailwidgetemailzEmail address)typeautocompleteplaceholderattrs)
setdefault_r   	TextInputsuper__init__selfargskwargs	__class__ :/tmp/pip-unpacked-wheel-upujnpc2/allauth/account/fields.pyr      s    
zEmailField.__init__c                    s   t  | S )N)r   cleanlowerr   valuer   r   r   r      s    zEmailField.clean__name__
__module____qualname__r   r   __classcell__r   r   r   r   r   
   s   r   c                       s   e Zd Z fddZ  ZS )PasswordFieldc                    sb   | dtj}tj|d|did|d< | dd }|d k	rL||d jd< tt| j	|| d S )Nrender_valuer   r
   )r)   r   r   r   )
popr   ZPASSWORD_INPUT_RENDER_VALUEr   ZPasswordInputgetr   r   r(   r   )r   r   r   r)   r   r   r   r   r      s     
zPasswordField.__init__)r$   r%   r&   r   r'   r   r   r   r   r(      s   r(   c                       s(   e Zd Z fddZ fddZ  ZS )SetPasswordFieldc                    s0   d|d< | dt  t j|| d | _d S )Nznew-passwordr   	help_text)r   r   Z"password_validators_help_text_htmlr   r   userr   r   r   r   r   -   s     zSetPasswordField.__init__c                    s"   t  |}t j|| jd}|S )N)r.   )r   r   r   Zclean_passwordr.   r!   r   r   r   r   5   s    zSetPasswordField.cleanr#   r   r   r   r   r,   ,   s   r,   c                       s:   e Zd ZededddZ fddZ fddZ  ZS )	
PhoneFieldz^\+[1-9]\d{5,14}$zAEnter a phone number including country code (e.g. +1 for the US).Zinvalid_phone)regexmessagecodec                    sV   t jtddddd}|d| jg |d| |dtd t j|| d S )NZPhonetel)r   r   r   r   Z
validatorsr   r
   )r   r   r   r   e164_validatorr   r   )r   r   r   r   r   r   r   r   B   s    zPhoneField.__init__c                    s4   t  |}|r0|dddd}t |}|S )N  -)r   r   replacer   Zclean_phoner!   r   r   r   r   K   s
    zPhoneField.clean)	r$   r%   r&   r   r   r4   r   r   r'   r   r   r   r   r/   ;   s   	r/   N)Zdjangor   Zdjango.contrib.authr   Zdjango.core.validatorsr   Zdjango.utils.translationr   r   Zallauth.accountr   Zallauth.account.adapterr   r   Z	CharFieldr(   r,   r/   r   r   r   r   <module>   s   