Fix post-create redirect and add bracket filter to jobs list

- After job creation always redirect to /jobs (never bracket detail)
- If a bracket was involved, redirect to /jobs?bracket_id=X instead
- GET /jobs?bracket_id=X filters the list and shows a dismissible bracket badge
- Amount label now says '(≥2 creates a bracket)' to make the side effect clear

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Martin Hohenberg
2026-06-18 22:28:51 +02:00
parent 392acef28e
commit 109306f5f8
2 changed files with 21 additions and 7 deletions

View File

@@ -127,18 +127,23 @@ def create_printer_type(
# ── Jobs ───────────────────────────────────────────────────────────────────────
@router.get("/jobs", response_class=HTMLResponse)
def jobs_page(request: Request, q: str = "", db: Session = Depends(get_db)):
def jobs_page(request: Request, q: str = "", bracket_id: str = "", db: Session = Depends(get_db)):
query = db.query(PrintJob)
if q:
like = f"%{q}%"
query = query.filter(
or_(PrintJob.customer.ilike(like), PrintJob.file_name.ilike(like))
)
active_bracket = None
if bracket_id:
query = query.filter(PrintJob.bracket_id == int(bracket_id))
active_bracket = db.query(JobBracket).filter(JobBracket.id == int(bracket_id)).first()
return templates.TemplateResponse("jobs.html", {
"request": request,
"active": "jobs",
"jobs": query.order_by(PrintJob.priority.desc(), PrintJob.created_at.desc()).all(),
"q": q,
"active_bracket": active_bracket,
"printers": db.query(Printer).order_by(Printer.name).all(),
"brackets": db.query(JobBracket).order_by(JobBracket.name).all(),
"stl_files": (stl_files := list_stl_files()),
@@ -205,8 +210,8 @@ async def create_job(
db.commit()
if effective_bracket_id and amount > 1:
return RedirectResponse(url=f"/brackets/{effective_bracket_id}", status_code=HTTP_303_SEE_OTHER)
if effective_bracket_id:
return RedirectResponse(url=f"/jobs?bracket_id={effective_bracket_id}", status_code=HTTP_303_SEE_OTHER)
return RedirectResponse(url="/jobs", status_code=HTTP_303_SEE_OTHER)