EP_inspection_tool_proto/home/jimmy/eptest/forms.py
2026-03-05 12:53:58 +01:00

34 lines
1.7 KiB
Python

"""
WTForms definitions for authentication and inspection CRUD.
"""
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, TextAreaField, BooleanField, SubmitField, FileField
from wtforms.validators import DataRequired, Length, EqualTo, ValidationError
from flask_wtf.file import FileAllowed, FileRequired
from config import Config
class LoginForm(FlaskForm):
username = StringField("Username", validators=[DataRequired(), Length(max=64)])
password = PasswordField("Password", validators=[DataRequired()])
submit = SubmitField("Login")
class RegisterForm(FlaskForm):
username = StringField("Username", validators=[DataRequired(), Length(max=64)])
password = PasswordField("Password", validators=[DataRequired(), Length(min=8)])
confirm = PasswordField("Confirm Password", validators=[DataRequired(), EqualTo('password')])
submit = SubmitField("Register")
class InspectionForm(FlaskForm):
title = StringField("Title", validators=[DataRequired(), Length(max=128)])
description = TextAreaField("Description")
remark_a = BooleanField("Remark A")
remark_b = BooleanField("Remark B")
remark_c = BooleanField("Remark C")
photos = FileField("Photos", validators=[FileAllowed(list(Config.ALLOWED_EXTENSIONS), "Images only!")], render_kw={"multiple": True})
submit = SubmitField("Save")
class PasswordChangeForm(FlaskForm):
current_password = PasswordField("Current Password", validators=[DataRequired()])
new_password = PasswordField("New Password", validators=[DataRequired(), Length(min=8)])
confirm_new = PasswordField("Confirm New Password", validators=[DataRequired(), EqualTo('new_password')])
submit = SubmitField("Change Password")