View order

This commit is contained in:
2025-12-13 12:25:00 +01:00
parent fd544fcebc
commit 5d2dfe37c1
5 changed files with 101 additions and 34 deletions

View File

@@ -1,12 +1,12 @@
from decimal import Decimal
from fastapi import APIRouter, Request
from fastapi import APIRouter, HTTPException, Request
from sqlalchemy import select
from starlette import status
from starlette.responses import RedirectResponse
from allmende_payment_system.api.dependencies import SessionDep, UserDep
from allmende_payment_system.models import Area, OrderItem, Product
from allmende_payment_system.models import Area, Order, OrderItem, Product
from allmende_payment_system.tools import get_jinja_renderer
shop_router = APIRouter()
@@ -28,8 +28,8 @@ async def get_shop(request: Request, session: SessionDep):
async def get_cart(request: Request, session: SessionDep, user: UserDep):
return templates.TemplateResponse(
"cart.html.jinja",
context={"request": request, "user": user},
"order.html.jinja",
context={"request": request, "order": user.shopping_cart, "is_cart": True},
)
@@ -76,3 +76,22 @@ async def add_to_cart(request: Request, session: SessionDep, user: UserDep):
return RedirectResponse(
url=f"/shop/area/{form_data['area_id']}", status_code=status.HTTP_302_FOUND
)
@shop_router.get("/shop/order/{order_id}")
async def add_to_cart(
request: Request, session: SessionDep, user: UserDep, order_id: int
):
query = select(Order).where(Order.id == order_id)
order = session.scalars(query).one()
if user.id != order.user_id:
raise HTTPException(
status_code=403, detail=f"User not authorized to view this order."
)
return templates.TemplateResponse(
"order.html.jinja",
context={"request": request, "order": order, "is_cart": False},
)