mirror of
https://github.com/sstent/foodplanner.git
synced 2026-02-17 16:25:24 +00:00
fixing weekly menu tab
This commit is contained in:
17
main.py
17
main.py
@@ -7,6 +7,7 @@ print("DEBUG: main.py started")
|
|||||||
from fastapi import FastAPI, Depends, HTTPException, Request, Form, Body
|
from fastapi import FastAPI, Depends, HTTPException, Request, Form, Body
|
||||||
from fastapi.templating import Jinja2Templates
|
from fastapi.templating import Jinja2Templates
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from fastapi.responses import HTMLResponse
|
from fastapi.responses import HTMLResponse
|
||||||
from sqlalchemy import create_engine, Column, Integer, String, Float, DateTime, ForeignKey, Text, Date, Boolean
|
from sqlalchemy import create_engine, Column, Integer, String, Float, DateTime, ForeignKey, Text, Date, Boolean
|
||||||
from sqlalchemy import or_
|
from sqlalchemy import or_
|
||||||
@@ -58,6 +59,13 @@ Base = declarative_base()
|
|||||||
app = FastAPI(title="Meal Planner")
|
app = FastAPI(title="Meal Planner")
|
||||||
templates = Jinja2Templates(directory="templates")
|
templates = Jinja2Templates(directory="templates")
|
||||||
|
|
||||||
|
# Add a logging middleware to see incoming requests
|
||||||
|
@app.middleware("http")
|
||||||
|
async def log_requests(request: Request, call_next):
|
||||||
|
logging.info(f"Incoming request: {request.method} {request.url.path}")
|
||||||
|
response = await call_next(request)
|
||||||
|
return response
|
||||||
|
|
||||||
# Get the port from environment variable or default to 8999
|
# Get the port from environment variable or default to 8999
|
||||||
PORT = int(os.getenv("PORT", 8999))
|
PORT = int(os.getenv("PORT", 8999))
|
||||||
|
|
||||||
@@ -1536,11 +1544,11 @@ async def delete_meals(meal_ids: dict = Body(...), db: Session = Depends(get_db)
|
|||||||
|
|
||||||
#Weekly Menu tab
|
#Weekly Menu tab
|
||||||
|
|
||||||
@app.get("/weekly-menu", response_class=HTMLResponse)
|
@app.get("/weeklymenu", response_class=HTMLResponse)
|
||||||
async def weekly_menu_page(request: Request, db: Session = Depends(get_db)):
|
async def weekly_menu_page(request: Request, db: Session = Depends(get_db)):
|
||||||
weekly_menus = db.query(WeeklyMenu).all()
|
weekly_menus = db.query(WeeklyMenu).all()
|
||||||
templates = db.query(Template).all()
|
templates = db.query(Template).all()
|
||||||
return templates.TemplateResponse("weekly_menu.html", {
|
return templates.TemplateResponse("weeklymenu.html", {
|
||||||
"request": request,
|
"request": request,
|
||||||
"weekly_menus": weekly_menus,
|
"weekly_menus": weekly_menus,
|
||||||
"templates": templates
|
"templates": templates
|
||||||
@@ -2095,6 +2103,11 @@ async def test_route():
|
|||||||
logging.info("DEBUG: Test route called")
|
logging.info("DEBUG: Test route called")
|
||||||
return {"status": "success", "message": "Test route is working"}
|
return {"status": "success", "message": "Test route is working"}
|
||||||
|
|
||||||
|
@app.get("/templates", response_class=HTMLResponse)
|
||||||
|
async def templates_page(request: Request, db: Session = Depends(get_db)):
|
||||||
|
templates = db.query(Template).all()
|
||||||
|
return templates.TemplateResponse("templates.html", {"request": request, "templates": templates})
|
||||||
|
|
||||||
@app.post("/templates/upload")
|
@app.post("/templates/upload")
|
||||||
async def bulk_upload_templates(file: UploadFile = File(...), db: Session = Depends(get_db)):
|
async def bulk_upload_templates(file: UploadFile = File(...), db: Session = Depends(get_db)):
|
||||||
"""Handle bulk template upload from CSV"""
|
"""Handle bulk template upload from CSV"""
|
||||||
|
|||||||
20
templates/templates.html
Normal file
20
templates/templates.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<title>Templates</title>
|
||||||
|
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container mt-4">
|
||||||
|
<h1>Templates</h1>
|
||||||
|
<p>This is the templates page.</p>
|
||||||
|
<ul>
|
||||||
|
{% for template in templates %}
|
||||||
|
<li>{{ template.name }}</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Reference in New Issue
Block a user