make buttons submit and cancel work

This commit is contained in:
Thomas Peetz
2025-06-13 01:11:18 +02:00
parent da4f286180
commit 510e2f8130
5 changed files with 46 additions and 19 deletions
+10 -1
View File
@@ -3,16 +3,25 @@ from typing import List, Optional
class ValidateComicForm:
def __init__(self, request: Request):
def __init__(self, request: Request, comic_id: str, completed: bool, current_order: bool):
self.request = request
self.errors: List = []
self.id = comic_id
self.title: Optional[str] = None
self.weblink: Optional[str] = None
self.completed = completed
self.current_order = current_order
async def load_data(self):
form = await self.request.form()
print(f"{form.keys()}")
self.title = form.get("title")
self.weblink = form.get("weblink")
def is_valid(self):
if not self.errors:
return True
return False
def __str__(self):
return f"{self.title=}, {self.weblink=}"
+6 -3
View File
@@ -1,4 +1,4 @@
from fastapi import APIRouter, Request, status
from fastapi import APIRouter, Form, Request, status
from fastapi.templating import Jinja2Templates
from fastapi.responses import RedirectResponse
@@ -48,8 +48,11 @@ def edit_comic(db: SessionDep, request: Request, comic_id: str):
@router.post("/comic/edit/{comic_id}")
async def validate_comic(request: Request, db: SessionDep, comic_id: str):
form = ValidateComicForm(request)
async def validate_comic(request: Request, db: SessionDep, comic_id: str, action: str = Form(...), completed: bool = Form(False), current_order: bool = Form(False)):
if action == "cancel":
return RedirectResponse(f"/comic/comics/{comic_id}", status_code=status.HTTP_303_SEE_OTHER)
form = ValidateComicForm(request, comic_id, completed, current_order)
logger.info(f"request: {repr(request)}")
await form.load_data()
logger.info(f"form: {form}")
if form.is_valid():