feat: add Create Product and CRUD actions to vendor-products page

- Add "Create Product" button in header
- Update actions column to View, Edit, Delete
- Add create/edit pages with forms and vendor selector
- Add POST/PATCH API endpoints for vendor products
- Add create_product and update_product service methods

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-25 11:20:17 +01:00
parent ef7c79908c
commit d65ffa58f6
9 changed files with 937 additions and 6 deletions

View File

@@ -807,6 +807,25 @@ async def admin_vendor_products_page(
)
@router.get("/vendor-products/create", response_class=HTMLResponse, include_in_schema=False)
async def admin_vendor_product_create_page(
request: Request,
current_user: User = Depends(get_current_admin_from_cookie_or_header),
db: Session = Depends(get_db),
):
"""
Render vendor product create page.
Create a new vendor product entry.
"""
return templates.TemplateResponse(
"admin/vendor-product-create.html",
{
"request": request,
"user": current_user,
},
)
@router.get(
"/vendor-products/{product_id}",
response_class=HTMLResponse,
@@ -832,6 +851,31 @@ async def admin_vendor_product_detail_page(
)
@router.get(
"/vendor-products/{product_id}/edit",
response_class=HTMLResponse,
include_in_schema=False,
)
async def admin_vendor_product_edit_page(
request: Request,
product_id: int = Path(..., description="Vendor Product ID"),
current_user: User = Depends(get_current_admin_from_cookie_or_header),
db: Session = Depends(get_db),
):
"""
Render vendor product edit page.
Edit vendor product information and overrides.
"""
return templates.TemplateResponse(
"admin/vendor-product-edit.html",
{
"request": request,
"user": current_user,
"product_id": product_id,
},
)
# ============================================================================
# SETTINGS ROUTES
# ============================================================================