mirror of
https://github.com/StefBuwalda/cal_counter.git
synced 2025-10-30 03:10:00 +00:00
Refactored add_meal routes to check for existing FoodItems by name or barcode and improved form handling. Made barcode optional in FoodItemForm. Added a unique constraint on (name, owner_id) for FoodItem in both the model and database migrations, while retaining the (barcode, owner_id) constraint. Updated FoodItem relationship to cascade deletes.
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from flask_wtf import FlaskForm
|
|
from wtforms import (
|
|
StringField,
|
|
PasswordField,
|
|
SubmitField,
|
|
IntegerField,
|
|
FloatField,
|
|
)
|
|
from wtforms.validators import DataRequired, InputRequired, Optional
|
|
|
|
|
|
class LoginForm(FlaskForm):
|
|
username = StringField("Username", validators=[DataRequired()])
|
|
password = PasswordField("Password", validators=[DataRequired()])
|
|
submit = SubmitField("Login")
|
|
|
|
|
|
class FoodItemForm(FlaskForm):
|
|
barcode = StringField("Barcode", validators=[Optional()])
|
|
name = StringField("Product Name", validators=[DataRequired()])
|
|
energy = IntegerField("Energy per 100g", validators=[InputRequired()])
|
|
protein = FloatField("protein per 100g", validators=[InputRequired()])
|
|
carbs = FloatField("carbs per 100g", validators=[InputRequired()])
|
|
sugar = FloatField("sugar per 100g", validators=[Optional()])
|
|
fat = FloatField("fat per 100g", validators=[InputRequired()])
|
|
saturated_fat = FloatField(
|
|
"saturated_fat per 100g", validators=[Optional()]
|
|
)
|
|
submit = SubmitField("Add Item")
|
|
|
|
|
|
class FoodLogForm(FlaskForm):
|
|
amount = FloatField("amount of food (g/ml)", validators=[DataRequired()])
|
|
submit = SubmitField("Log Item")
|