diff --git a/app.py b/app.py index ab86701..9477ec1 100644 --- a/app.py +++ b/app.py @@ -9,6 +9,7 @@ from forms import LoginForm, FoodItemForm from models import User, FoodItem from application import db, app, login_manager from application.admin.routes import admin_bp +from application.user.routes import user_bp from typing import Optional # Config @@ -24,6 +25,7 @@ def load_user(user_id: int): # Register blueprints app.register_blueprint(admin_bp) +app.register_blueprint(user_bp) # Routes @@ -62,12 +64,6 @@ def login(): return render_template("login.html", form=form) -@app.route("/dashboard") -@login_required -def dashboard(): - return render_template("dashboard.html", name=current_user.username) - - @app.route("/logout") @login_required def logout(): @@ -122,6 +118,7 @@ def add_food_item(): db.session.add( FoodItem( name=form.name.data, + owner_id=current_user.id, energy=form.energy.data, protein=form.protein.data, carbs=form.carbs.data, diff --git a/application/admin/routes.py b/application/admin/routes.py index 47bb3f1..772e917 100644 --- a/application/admin/routes.py +++ b/application/admin/routes.py @@ -32,6 +32,7 @@ def barcode_test(): def delete_food(id): item = FoodItem.query.get(id) if item: + # if item.owner_id == current_user.id: db.session.delete(item) db.session.commit() return redirect(url_for("admin.food_items")) diff --git a/application/user/routes.py b/application/user/routes.py new file mode 100644 index 0000000..2659bfb --- /dev/null +++ b/application/user/routes.py @@ -0,0 +1,20 @@ +from flask import Blueprint, redirect, url_for, render_template +from flask_login import current_user + +user_bp = Blueprint( + "user", + __name__, + template_folder="templates", +) + + +@user_bp.before_request +def login_required(): + if not current_user.is_authenticated: + return redirect(url_for("login")) + + +@user_bp.route("/dashboard", methods=["GET"]) +def dashboard(): + items = current_user.food_items.all() + return render_template("dashboard.html", items=items) diff --git a/application/user/templates/dashboard.html b/application/user/templates/dashboard.html new file mode 100644 index 0000000..2ee2348 --- /dev/null +++ b/application/user/templates/dashboard.html @@ -0,0 +1,47 @@ +{% extends "base.html" %} + +{% block title %} +Food Nutritional Info +{% endblock %} + +{% block content %} +
| Name | +Energy (kcal) | +Fats (g) | +Saturated Fats (g) | +Sugars (g) | +Carbs (g) | +Protein (g) | +Actions | +
|---|---|---|---|---|---|---|---|
| {{ food.name }} | +{{ food.energy_100g }} | +{{ food.fats_100g }} | +{{ food.saturated_fats_100g }} | +{{ food.sugar_100g }} | +{{ food.carbs_100g }} | +{{ food.protein_100g }} | ++ + | +