- Added a new API router for managing vendors with endpoints for listing, creating, updating, retrieving, and deleting vendors. - Implemented frontend views for displaying vendor lists and details using Jinja2 templates. - Created HTML templates for vendor list and detail pages with responsive design and dynamic content loading. - Added JavaScript functionality for vendor management, including pagination, filtering, and modal forms for creating new vendors. - Introduced a settings table in the database for system configuration and extended the users table with additional fields. - Developed a script to import vendors from an OmniSync database into the PostgreSQL database, handling errors and logging progress.
34 lines
982 B
Python
34 lines
982 B
Python
"""
|
|
Vendors Frontend Views
|
|
Renders vendor list and detail pages
|
|
"""
|
|
|
|
from fastapi import APIRouter, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from fastapi.templating import Jinja2Templates
|
|
import logging
|
|
|
|
logger = logging.getLogger(__name__)
|
|
router = APIRouter()
|
|
|
|
templates = Jinja2Templates(directory="app")
|
|
|
|
|
|
@router.get("/vendors", response_class=HTMLResponse, tags=["Frontend"])
|
|
async def vendors_page(request: Request):
|
|
"""Render vendors list page"""
|
|
return templates.TemplateResponse("vendors/frontend/vendors.html", {
|
|
"request": request,
|
|
"title": "Leverandører"
|
|
})
|
|
|
|
|
|
@router.get("/vendors/{vendor_id}", response_class=HTMLResponse, tags=["Frontend"])
|
|
async def vendor_detail_page(request: Request, vendor_id: int):
|
|
"""Render vendor detail page"""
|
|
return templates.TemplateResponse("vendors/frontend/vendor_detail.html", {
|
|
"request": request,
|
|
"vendor_id": vendor_id,
|
|
"title": "Leverandør Detaljer"
|
|
})
|