diff --git a/application/add_meal/routes.py b/application/add_meal/routes.py index f6778bc..f54e6b7 100644 --- a/application/add_meal/routes.py +++ b/application/add_meal/routes.py @@ -6,12 +6,14 @@ from flask import ( session, request, jsonify, + abort, ) from flask_login import current_user from forms import FoodItemForm, FoodLogForm from application import db from models import FoodItem, FoodLog from sqlalchemy import and_ +from datetime import datetime, timedelta, timezone bp = Blueprint( "add_meal", @@ -116,7 +118,13 @@ def step4(): form = FoodLogForm() item = db.session.get(FoodItem, session["item_id"]) - assert item + offset = session["offset"] + if offset is None or item is None: + abort(404) + + today = datetime.now(timezone.utc).date() + day = today + timedelta(days=offset) + if form.validate_on_submit(): assert form.amount.data db.session.add( @@ -125,12 +133,13 @@ def step4(): user_id=current_user.id, amount=form.amount.data, part_of_day=session["meal_type"], + date_=day, ) ) db.session.commit() session.pop("meal_type") session.pop("item_id") - return redirect("/") + return redirect(url_for("user.daily_log", offset=offset)) match session["meal_type"]: case 0: diff --git a/application/user/routes.py b/application/user/routes.py index 12aa67d..4236c40 100644 --- a/application/user/routes.py +++ b/application/user/routes.py @@ -5,6 +5,7 @@ from flask import ( render_template, flash, abort, + session, ) from flask_login import current_user from application import db @@ -76,6 +77,7 @@ def daily_log(offset: int = 0): abort(400) # or handle invalid input today = datetime.now(timezone.utc).date() day = today + timedelta(days=offset) + session["offset"] = offset logs_today = current_user.food_logs.filter_by(date_=day).all() logs = [[], [], [], []] calories: float = 0