mirror of
https://github.com/StefBuwalda/cal_counter.git
synced 2025-10-30 03:10:00 +00:00
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:
@@ -1,5 +0,0 @@
|
|||||||
{% extends "base.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
Index page idk
|
|
||||||
{% endblock%}
|
|
||||||
@@ -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"))
|
||||||
|
|||||||
10
models.py
10
models.py
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user