from fastapi import FastAPI, APIRouter, Depends, Request, HTTPException, Form from fastapi.templating import Jinja2Templates from fastapi.responses import RedirectResponse, HTMLResponse from fastapi.responses import JSONResponse import jwt from sqlalchemy.future import select from sqlalchemy.orm import joinedload from sqlalchemy.ext.asyncio import AsyncSession from routers.auth import get_current_user from model.database import get_async_session, Job, Client, AppliedJob router = APIRouter() templates = Jinja2Templates(directory="templates") @router.get("/product") async def product(request: Request, username: str = Depends(get_current_user), session: AsyncSession = Depends(get_async_session)): size = "Work" username = username result = await session.execute( select(AppliedJob) .options( joinedload(AppliedJob.client), # Подгружаем клиента joinedload(AppliedJob.job), # Подгружаем работу joinedload(AppliedJob.users) # Подгружаем пользователя ) ) applied_jobs = result.scalars().all() result1 = await session.select(AppliedJob) assignee = result1.scalars().all() return templates.TemplateResponse("product.html", {"request": request, "size": size, "jobs": applied_jobs, "role": username["role"], "username": username['username'], "assignee": assignee, "current_path": request.url.path })#