From 109306f5f87f9c14abfea836966cce59cb8fb110 Mon Sep 17 00:00:00 2001 From: Martin Hohenberg Date: Thu, 18 Jun 2026 22:28:51 +0200 Subject: [PATCH] Fix post-create redirect and add bracket filter to jobs list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- app/routers/ui.py | 11 ++++++++--- app/templates/jobs.html | 17 +++++++++++++---- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/app/routers/ui.py b/app/routers/ui.py index 95e0d40..91b3210 100644 --- a/app/routers/ui.py +++ b/app/routers/ui.py @@ -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) diff --git a/app/templates/jobs.html b/app/templates/jobs.html index ab5cf9a..e17820f 100644 --- a/app/templates/jobs.html +++ b/app/templates/jobs.html @@ -21,7 +21,14 @@ {% endif %} -{% if q %} +{% if active_bracket %} +
+ + {{ active_bracket.name }} + + × clear filter +
+{% elif q %}

Results for {{ q }}

{% endif %} @@ -180,11 +187,13 @@
- + + value="1" min="1" max="500">