from flask_wtf import FlaskForm from wtforms import ( BooleanField, StringField, PasswordField, SubmitField, SelectField, IntegerField, SearchField, EmailField, TelField, DecimalField, TextAreaField, validators, ) import datetime class RegistrationForm(FlaskForm): username = StringField( "Username", [validators.DataRequired(), validators.Length(max=256)] ) email = EmailField( "Email Address", [validators.DataRequired(), validators.Length(max=256)] ) phone_number = TelField("Phone Number", [validators.DataRequired()]) password = PasswordField( "New Password", [ validators.InputRequired(), validators.EqualTo("confirm", message="Passwords must match"), validators.Length(min=6), ], ) confirm = PasswordField( "Repeat Password", validators=[validators.DataRequired(), validators.EqualTo("password")], ) accept_tos = BooleanField( "I accept the Terms of Service", [validators.DataRequired()] ) submit = SubmitField("Sign Up", render_kw={"class": "button"}) class LoginForm(FlaskForm): username = StringField("Username") password = PasswordField("Password") securityQ1 = StringField("Enter your Favourite Colour", [validators.Length(max=30)]) submit = SubmitField("Login", render_kw={"class": "button"}) class SearchForm(FlaskForm): query = SearchField( "Search", [validators.DataRequired()], render_kw={"placeholder": "Search"} ) submit = SubmitField("Submit") class AccessDataForm(FlaskForm): table = SelectField( "Table", choices=["Item", "Item Set"], validators=[validators.DataRequired()] ) id = IntegerField("ID", [validators.DataRequired()]) submit = SubmitField("Submit") class AddForm(FlaskForm): table = SelectField( "Table", choices=["Item", "Item Set"], validators=[validators.DataRequired()] ) description = StringField("Description", validators=[validators.DataRequired()]) price = IntegerField(default=0, validators=[validators.InputRequired()]) submit = SubmitField("Submit")