o
    9fy                     @   sT  d dl mZ d dlmZmZmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZmZmZmZmZmZ d dlmZmZ d dlmZmZ dd Zdd	 ZG d
d deZG dd deZG dd deZG dd deZ G dd deZ!G dd deZ"G dd deZ#G dd deZ$G dd deZ%G dd deZ&G dd deZ'G d d! d!eZ(d"S )#    )	FlaskForm)StringFieldPasswordFieldBooleanFieldSubmitField	FileFieldSelectFieldIntegerFieldDecimalFieldTextAreaField
FloatFieldDateTimeField)DataRequiredValidationErrorEmailEqualToLengthNumberRange)QuerySelectFieldQuerySelectMultipleField)UserRolec                   C   
   t j S N)r   queryall r   r    /home/ubuntu/webapp/app/forms.pyuser_choices      
r   c                   C   r   r   r   r   r   r   r   r   r   role_choices   r   r!   c                   @   s0   e Zd ZeedddZeedddZedZ	dS )RoleAssignFormemailT)query_factory	get_labelallow_blanknamezAssign RoleN)
__name__
__module____qualname__r   r   userr!   roler   submitr   r   r   r   r"      s    r"   c                   @   s   e Zd Zede gdZede gdZede e gdZede gdZ	e
de gdZe
de edgdZed	e gdZed
e gdZede gdZede gdZedg ddZedg ddZedZedZdd ZdS )RegistrationForm
First Name
validators	Last Namer   Company NamePasswordzRepeat PasswordpasswordStreet AddressCityStatePhone NumberLocation)United Statesr<   )United Kingdomr=   )Indiar>   )Canadar?   choicesCurrency)USDzUS Dollar ($))GBPzUnited Kingdom (Pound))INRzIndia (INR))CADzCA Dollar ($)zProfile PictureRegisterc                 C   s(   t jj|jd }|d urtdd S )N)r#   z%Please use a different email address.)r   r   	filter_bydatafirstr   )selfr#   r+   r   r   r   validate_email)   s   zRegistrationForm.validate_emailN)r(   r)   r*   r   r   
first_name	last_namer   r#   company_namer   r5   r   	password2street_addresscitystatephone_numberr   locationcurrencyr   profile_picturer   r-   rM   r   r   r   r   r.      s,    r.   c                   @   s@   e Zd Zede e gdZede gdZe	dZ
edZdS )	LoginFormr   r0   r4   zRemember MezSign InN)r(   r)   r*   r   r   r   r#   r   r5   r   remember_mer   r-   r   r   r   r   rY   /   s
    rY   c                   @   s   e Zd Zede gdZede gdZede e gdZede gdZ	ede gdZ
ede gdZede gdZed	e gdZed
g ddZedg ddZedZdS )ProfileFormr/   r0   r2   r   r3   r6   r7   r8   r9   r:   r;   r@   rB   rC   SaveN)r(   r)   r*   r   r   rN   rO   r   r#   rP   rR   rS   rT   rU   r   rV   rW   r   r-   r   r   r   r   r[   6   s    r[   c                   @   sJ   e Zd Zede gdZede gdZede edgdZe	dZ
dS )ChangePasswordFormzCurrent Passwordr0   zNew PasswordzConfirm Passwordnew_passwordzChange PasswordN)r(   r)   r*   r   r   current_passwordr^   r   confirm_passwordr   r-   r   r   r   r   r]   C   s
    r]   c                   @   sH   e Zd Zede e gdZedZedZ	edZ
edZedZdS )	NotificationFormzEmail Addressr0   zOur newsletterInvoiceszOrder DeliveredzEmail Notificationr\   N)r(   r)   r*   r   r   r   notification_emailr   newsletter_notificationsinvoice_notificationsdelivery_notificationsemail_notificationsr   r-   r   r   r   r   ra   I   s    ra   c                   @   t   e Zd Zede gdZede gdZede gdZede gdZede gdZ	ede gdZ
edZd	S )
BillingInfoFormzBusiness Namer0   zBusiness Addressr/   r2   zBusiness SectorCountryr\   N)r(   r)   r*   r   r   business_namebusiness_addressrN   rO   business_sectorcountryr   r-   r   r   r   r   ri   Q       ri   c                   @   s   e Zd ZedZdS )	EmptyFormSubmitN)r(   r)   r*   r   r-   r   r   r   r   rp   [   s    rp   c                   @   s   e Zd Zede eddgdZede eddgdZede e eddgdZ	ededdgdZ
ed	d
d ddZedZedZdS )EditUserFormr/   @   maxr0   r2   r   x   r3   Rolesc                   C   r   r   r    r   r   r   r   <lambda>c   s   
 zEditUserForm.<lambda>r'   )r$   r%   ActiveSave ChangesN)r(   r)   r*   r   r   r   rN   rO   r   r#   rP   r   rolesr   	is_activer   r-   r   r   r   r   rr   ^   s    rr   c                   @   sd   e Zd Zede eddgdZedZe	de
ddgdZed	e gdZed
edZedZdS )EditPlanFormName2   rt   r0   DescriptionCostr   )minzUsage LimitCompany)coercerz   N)r(   r)   r*   r   r   r   r'   r   descriptionr   r   costr	   usage_limitr   int
company_idr   r-   r   r   r   r   r}   g   s    r}   c                   @   rh   )
AddCompanyFormr3   r0   r6   r7   r8   Zip Coderj   zAdd CompanyNr(   r)   r*   r   r   r'   rR   rS   rT   zip_codern   r   r-   r   r   r   r   r   o   ro   r   c                   @   rh   )
UpdateCompanyAddressFormr3   r0   r6   r7   r8   r   rj   zUpdate AddressNr   r   r   r   r   r   x   ro   r   N))	flask_wtfr   wtformsr   r   r   r   r   r   r	   r
   r   r   r   wtforms.validatorsr   r   r   r   r   r   wtforms_sqlalchemy.fieldsr   r   
app.modelsr   r   r   r!   r"   r.   rY   r[   r]   ra   ri   rp   rr   r}   r   r   r   r   r   r   <module>   s&    4 
		