3

\                 @   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mZ d dlmZmZ e Zedd	Zedd
ZeddZG dd dejZG dd dejZdedfdedffZG dd deZG dd dejZG dd dejZG dd dejZdS )    )forms)
Permission)validate_password)gettext_lazy)pgettext_lazy)existing_user_fieldsget_user_model)	get_class	get_modelpartnerPartnerPartnerAddresszcustomer.formsEmailUserCreationFormc               @   s    e Zd ZejdedddZdS )PartnerSearchFormFzPartner's nameName)requiredlabelN)__name__
__module____qualname__r   	CharFieldr   name r   r   >/var/www/html/oscar2019/oscar/apps/dashboard/partners/forms.pyr      s   r   c                   s*   e Zd Z fddZG dd dZ  ZS )PartnerCreateFormc                s   t  j|| d| jd _d S )NTr   )super__init__fieldsr   )selfargskwargs)	__class__r   r   r      s    zPartnerCreateForm.__init__c               @   s   e Zd ZeZdZdS )zPartnerCreateForm.Metar   N)r   )r   r   r   r   modelr   r   r   r   r   Meta   s   r#   )r   r   r   r   r#   __classcell__r   r   )r!   r   r      s   r   staffzFull dashboard accesslimitedzLimited dashboard accessc                   sN   e Zd ZejeejedddZ fddZ	 fddZ
G dd	 d	Z  ZS )
NewUserFormz	User roler&   )choiceswidgetr   initialc                s    || _ t j|dd i| d S )Nhost)r   r   r   )r   r   r   r    )r!   r   r   r   -   s    zNewUserForm.__init__c                sd   | j jdd}t jdd}|dk|_|j  | jjj| |dkr`tj	jddd}|j
j| |S )	Nroler&   F)commitr%   dashboard_accessr   )codenamecontent_type__app_label)cleaned_datagetr   saveis_staffr   usersaddr   objectsuser_permissions)r   r,   userdashboard_access_perm)r!   r   r   r3   1   s    

zNewUserForm.savec               @   s&   e Zd ZeZedddgddg ZdS )zNewUserForm.Meta
first_name	last_nameemail	password1	password2N)r   r   r   Userr"   r   r   r   r   r   r   r#   =   s   r#   )r   r   r   r   ChoiceFieldROLE_CHOICESRadioSelect_r,   r   r3   r#   r$   r   r   )r!   r   r'   )   s
   
r'   c                   s   e Zd ZdZejeejeddZ	ej
edejddZej
dedejdZd	d
 Z fddZ fddZG dd dZ  ZS )ExistingUserFormz
    Slightly different form that makes
    * makes saving password optional
    * doesn't regenerate username
    * doesn't allow changing email till #668 is resolved
    z	User role)r(   r)   r   PasswordF)r   r)   r   zConfirm Password)r   r   r)   c             C   sB   | j jdd}| j jdd}||kr2tjtdt|| j |S )Nr>    r?   z%The two password fields didn't match.)r1   r2   r   ValidationErrorrD   r   instance)r   r>   r?   r   r   r   clean_password2U   s    
z ExistingUserForm.clean_password2c                s<   |d }|j rdnd}|jdi jd| t j|| d S )NrI   r%   r&   r*   r,   )r4   r2   
setdefaultr   r   )r   r   r    r9   r,   )r!   r   r   r   _   s    zExistingUserForm.__init__c                s   | j jdd}t jdd}|dk|_| j d r@|j| j d  |j  tjjddd	}|jj	|j
d
j }|dkr| r|jj| n|dkr|r|jj| |S )Nr,   noneF)r-   r%   r>   r.   r   )r/   r0   )pkr&   )r1   r2   r   r3   r4   set_passwordr   r7   r8   filterrM   existsr6   remove)r   r,   r9   Zdashboard_permZuser_has_perm)r!   r   r   r3   e   s    


zExistingUserForm.savec               @   s$   e Zd ZeZeddgddg ZdS )zExistingUserForm.Metar;   r<   r>   r?   N)r   r   r   r@   r"   r   r   r   r   r   r   r#   w   s   r#   )r   r   r   __doc__r   rA   rB   rC   rD   r,   r   PasswordInputr>   r?   rJ   r   r3   r#   r$   r   r   )r!   r   rE   C   s   


rE   c               @   s   e Zd ZejedddZdS )UserEmailFormzEmail addressd   )r   
max_lengthN)r   r   r   r   r   rD   r=   r   r   r   r   rT   }   s   rT   c               @   s0   e Zd ZejddedddZG dd dZdS )	PartnerAddressFormF   zPartner's namer   )r   rV   r   c               @   s   e Zd Zd
ZeZd	S )zPartnerAddressForm.Metar   line1line2line3line4statepostcodecountryN)r   rY   rZ   r[   r\   r]   r^   r_   )r   r   r   r   r   r"   r   r   r   r   r#      s    r#   N)r   r   r   r   r   r   r   r#   r   r   r   r   rW      s   rW   N)djangor   django.contrib.auth.modelsr   'django.contrib.auth.password_validationr   django.utils.translationr   rD   r   oscar.core.compatr   r   oscar.core.loadingr	   r
   r@   r   r   r   Formr   	ModelFormr   rB   r'   rE   rT   rW   r   r   r   r   <module>   s$   



: