From b575180b0a4a415c5abdd5d9a826113a1383f463 Mon Sep 17 00:00:00 2001 From: Stef Date: Thu, 7 Aug 2025 20:19:23 +0200 Subject: [PATCH] Add ability to remove food logs from daily log Introduced a new route and backend logic to allow users to delete their own food log entries. Updated the daily_log.html template to display delete buttons for each log entry, improving user control over their daily food logs. --- application/user/routes.py | 17 ++- application/user/templates/daily_log.html | 153 ++++++++++++++++++---- 2 files changed, 141 insertions(+), 29 deletions(-) diff --git a/application/user/routes.py b/application/user/routes.py index 4828557..83cda44 100644 --- a/application/user/routes.py +++ b/application/user/routes.py @@ -4,11 +4,12 @@ from flask import ( url_for, render_template, flash, + abort, ) from flask_login import current_user from application import db from forms import FoodItemForm -from models import FoodItem +from models import FoodItem, FoodLog from datetime import datetime, timezone user_bp = Blueprint( @@ -78,7 +79,19 @@ def daily_log(): logs = [[], [], [], []] for log in logs_today: logs[log.part_of_day].append(log) - print(logs) return render_template( "daily_log.html", date=(today.strftime("%d/%m/%y")), logs=logs ) + + +@user_bp.route("/remove_log/", methods=["POST"]) +def remove_log(id: int): + log = db.session.get(FoodLog, id) + # Check if log exists and if user owns log + if log is None or log.user_id != current_user.id: + abort(404) + + # Delete log + db.session.delete(log) + db.session.commit() + return redirect(url_for("user.daily_log")) diff --git a/application/user/templates/daily_log.html b/application/user/templates/daily_log.html index a10c1f9..fede05e 100644 --- a/application/user/templates/daily_log.html +++ b/application/user/templates/daily_log.html @@ -19,55 +19,154 @@ Food Nutritional Info
-

Detailed Information

-

More content here...

+

Eaten today

-
-

Breakfast

- Add + +
+
+

Breakfast

+
+
+

Amount

+
+
+ Add +
+ +
{% for log in logs[0] %} -

{{log.food_item.name}} - {{"{:g}".format(log.amount)}}

+
+
+ {{ log.food_item.name }} +
+
+ {{ "{:g}".format(log.amount) }} +
+
+
+ +
+
+
+ {% endfor %} +
+
+ + + + +
+ +
+
+

Lunch

+
+
+

Amount

+
+
+ Add +
+
+ + +
+ {% for log in logs[1] %} +
+
+ {{ log.food_item.name }} +
+
+ {{ "{:g}".format(log.amount) }} +
+
+
+ +
+
+
{% endfor %}
-
-

Lunch

- Add -
-
- {% for log in logs[1] %} -

{{log.food_item.name}} - {{"{:g}".format(log.amount)}}

- {% endfor %} -
-
-
-
-

Dinner

- Add + +
+
+

Dinner

+
+
+

Amount

+
+
+ Add +
+ +
{% for log in logs[2] %} -

{{log.food_item.name}} - {{"{:g}".format(log.amount)}}

+
+
+ {{ log.food_item.name }} +
+
+ {{ "{:g}".format(log.amount) }} +
+
+
+ +
+
+
{% endfor %}
+
-
-

Snacks

- Add + +
+
+

Snacks

+
+
+

Amount

+
+
+ Add +
+ +
{% for log in logs[3] %} -

{{log.food_item.name}} - {{"{:g}".format(log.amount)}}

+
+
+ {{ log.food_item.name }} +
+
+ {{ "{:g}".format(log.amount) }} +
+
+
+ +
+
+
{% endfor %}
-
-{% endblock%} \ No newline at end of file + {% endblock%} \ No newline at end of file