Refactor food item editing and remove index template

Removed the unused index.html template. Refactored the food item editing route to use a new updateFromForm method in the FoodItem model for updating fields from the form, simplifying the update logic and form population in routes.py.
This commit is contained in:
2025-06-29 16:25:55 +02:00
parent bbd67a1e8e
commit c5acf7d19b
3 changed files with 30 additions and 21 deletions

View File

@@ -1,5 +0,0 @@
{% extends "base.html" %}
{% block content %}
Index page idk
{% endblock%}

View File

@@ -33,11 +33,16 @@ def delete_food_item(barcode: int):
return redirect(url_for("user.dashboard")) return redirect(url_for("user.dashboard"))
def edit_helper(form: FoodItemForm, item) -> bool: fields = [
change = False "barcode",
for item in form: "name",
print(item) "energy",
return change "protein",
"carbs",
"sugar",
"fat",
"saturated_fat",
]
@user_bp.route("/edit_food_item/<int:barcode>", methods=["GET", "POST"]) @user_bp.route("/edit_food_item/<int:barcode>", methods=["GET", "POST"])
@@ -46,18 +51,17 @@ def edit_food_item(barcode: int):
if item: if item:
form = FoodItemForm() form = FoodItemForm()
if form.validate_on_submit(): if form.validate_on_submit():
edit_helper(form, item) item.updateFromForm(form=form)
db.session.commit()
return redirect(url_for("user.dashboard")) return redirect(url_for("user.dashboard"))
form = FoodItemForm( form.barcode.data = item.barcode
barcode=item.barcode, form.name.data = item.name
name=item.name, form.energy.data = item.energy_100g
energy=item.energy_100g, form.protein.data = item.protein_100g
protein=item.protein_100g, form.carbs.data = item.carbs_100g
carbs=item.carbs_100g, form.sugar.data = item.sugar_100g
sugar=item.sugar_100g, form.fat.data = item.fats_100g
fat=item.fats_100g, form.saturated_fat.data = item.saturated_fats_100g
saturated_fat=item.saturated_fats_100g,
)
return render_template("edit_food_item.html", form=form) return render_template("edit_food_item.html", form=form)
else: else:
return redirect(url_for("user.dashboard")) return redirect(url_for("user.dashboard"))

View File

@@ -2,6 +2,7 @@ from flask_login import UserMixin # type: ignore
from werkzeug.security import generate_password_hash, check_password_hash from werkzeug.security import generate_password_hash, check_password_hash
from application import db from application import db
from typing import Optional from typing import Optional
from forms import FoodItemForm
class User(UserMixin, db.Model): class User(UserMixin, db.Model):
@@ -75,6 +76,15 @@ class FoodItem(db.Model):
self.saturated_fats_100g = saturated_fats self.saturated_fats_100g = saturated_fats
self.barcode = barcode self.barcode = barcode
def updateFromForm(self, form: FoodItemForm):
self.name = form.name.data
self.energy_100g = form.energy.data
self.protein_100g = form.protein.data
self.carbs_100g = form.carbs.data
self.sugar_100g = form.sugar.data
self.fats_100g = form.fat.data
self.saturated_fats_100g = form.saturated_fat.data
def to_dict(self): def to_dict(self):
return { return {
"id": self.id, "id": self.id,