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 e
 Zedd	Zed
dZG dd deeZG dd dejZG dd deZdS )    )forms)AuthenticationForm)gettext_lazy)normalise_email)get_user_model)	get_class	get_model)PhoneNumberMixinzaddress.formsAbstractAddressFormaddressCountryc                   s2   e Zd Z fddZdd ZG dd dZ  ZS )ShippingAddressFormc                s   t  j|| | j  d S )N)super__init__adjust_country_field)selfargskwargs)	__class__ 4/var/www/html/oscar2019/oscar/apps/checkout/forms.pyr      s    zShippingAddressForm.__init__c             C   sR   t jjdd}t|dkr6| jjdd  |d | j_n|| jd _d | jd _	d S )NT)is_shipping_country   countryr   )
r   _default_managerfilterlenfieldspopinstancer   querysetempty_label)r   	countriesr   r   r   r      s    z(ShippingAddressForm.adjust_country_fieldc               @   s2   e Zd ZeddZddddddd	d
ddddgZdS )zShippingAddressForm.MetaorderZshippingaddresstitle
first_name	last_nameline1line2line3line4statepostcoder   phone_numbernotesN)__name__
__module____qualname__r   modelr   r   r   r   r   Meta!   s
   
r3   )r/   r0   r1   r   r   r3   __classcell__r   r   )r   r   r      s   r   c                   s*   e Zd ZejejdZ fddZ  ZS )ShippingMethodForm)widgetc                s4   |j dg }t j|| dd |D | jd _d S )Nmethodsc             s   s   | ]}|j |jfV  qd S )N)codename).0mr   r   r   	<genexpr>1   s    z.ShippingMethodForm.__init__.<locals>.<genexpr>method_code)r   r   r   r   choices)r   r   r   r7   )r   r   r   r   .   s    zShippingMethodForm.__init__)	r/   r0   r1   r   ChoiceFieldHiddenInputr=   r   r4   r   r   )r   r   r5   +   s   r5   c                   s   e Zd ZejeddZd\ZZZ	eedfeedfe	edffZ
ejejje
ed	Zd
d Z fddZdd Zdd Z  ZS )GatewayFormzMy email address is)label	anonymousnewexistingz3I am a new customer and want to checkout as a guestzEI am a new customer and want to create an account before checking outz-I am a returning customer, and my password is)r6   r>   initialc             C   s   t | jd S )Nusername)r   cleaned_data)r   r   r   r   clean_username?   s    zGatewayForm.clean_usernamec                sv   | j  s| j rld| jkr"| jd= d| jkrft| jd }tjj|dj rft	d}| j
|g| jd< | jS t j S )NpasswordrG   )email__iexactz-A user with that email address already exists)is_guest_checkoutis_new_account_checkouterrorsrH   r   Userr   r   exists_error_class_errorsr   clean)r   emailmsg)r   r   r   rT   B   s    

zGatewayForm.cleanc             C   s   | j jdd | jkS )Noptions)rH   getGUEST)r   r   r   r   rL   N   s    zGatewayForm.is_guest_checkoutc             C   s   | j jdd | jkS )NrW   )rH   rX   NEW)r   r   r   r   rM   Q   s    z#GatewayForm.is_new_account_checkout)rC   rD   rE   )r/   r0   r1   r   
EmailFieldrQ   rG   rY   rZ   ZEXISTINGZCHOICESr?   widgetsRadioSelectrW   rI   rT   rL   rM   r4   r   r   )r   r   rA   4   s   




rA   N)djangor   django.contrib.auth.formsr   django.utils.translationr   rQ   oscar.apps.customer.utilsr   oscar.core.compatr   oscar.core.loadingr   r   oscar.forms.mixinsr	   rO   r
   r   r   Formr5   rA   r   r   r   r   <module>   s   

	