40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
"""
|
|
File management views for displaying and managing files.
|
|
"""
|
|
from fastapi import Request, Depends
|
|
from sqlalchemy.orm import Session
|
|
|
|
from app.views.base import APIRouter, templates, require_login, get_db, logger
|
|
|
|
router = APIRouter()
|
|
|
|
@router.get("/files")
|
|
@require_login
|
|
def files_page(request: Request, db: Session = Depends(get_db)):
|
|
"""
|
|
Return the 'files.html' template with files from the database
|
|
"""
|
|
try:
|
|
# Import the model here to avoid circular imports
|
|
from app.models import FileRecord
|
|
|
|
# Fetch all files from the database
|
|
files = db.query(FileRecord).order_by(FileRecord.created_at.desc()).all()
|
|
|
|
# Debug output
|
|
logger.info(f"Retrieved {len(files)} files from database")
|
|
|
|
return templates.TemplateResponse("files.html", {
|
|
"request": request,
|
|
"files": files
|
|
})
|
|
except Exception as e:
|
|
# Log any errors
|
|
logger.error(f"Error retrieving files: {str(e)}")
|
|
# Return error message to template
|
|
return templates.TemplateResponse("files.html", {
|
|
"request": request,
|
|
"files": [],
|
|
"error": str(e)
|
|
})
|