flask_eindproject/app/forms.py

65 lines
1.7 KiB
Python

from typing import Any
from flask_wtf import FlaskForm
from wtforms import (
StringField,
SubmitField,
HiddenField,
FloatField,
URLField,
TextAreaField,
)
from wtforms.validators import DataRequired
class NewWishlist(FlaskForm):
title = StringField("Title", validators=[DataRequired()])
description = TextAreaField("Description", validators=[DataRequired()])
submit = SubmitField("Create")
# Each submit needs a different page fot it to work on the same page.
class DeleteWishlist(FlaskForm):
wl_del_submit = SubmitField("Delete wishlist")
class EditWishlistInfo(FlaskForm):
title = StringField("Title", validators=[DataRequired()])
description = TextAreaField("Description", validators=[DataRequired()])
wl_edit_submit = SubmitField("Submit")
class ResetWishlistUrls(FlaskForm):
wl_reset_submit = SubmitField("Reset urls")
class NewItem(FlaskForm):
it_new_title = StringField("Title", validators=[DataRequired()])
description = StringField("Description", validators=[DataRequired()])
price = FloatField("Price", validators=[DataRequired()])
url = URLField("Url", validators=[DataRequired()])
image = URLField("Image url", validators=[DataRequired()])
it_new_submit = SubmitField("Submit")
class CheckItem(FlaskForm):
num = HiddenField()
class DeleteItem(FlaskForm):
index = HiddenField()
it_del_submit = SubmitField("Delete item")
def parseHiddenIndex(field: HiddenField, array: list[Any]) -> int | None:
try:
if field.data == None or field.data == "":
raise ValueError()
index = int(field.data)
if index > len(array):
raise ValueError()
return index - 1
except ValueError:
return None