From 631a4c3e3d9d97e9898337ec7b9790d5566ececd Mon Sep 17 00:00:00 2001 From: Krikorios <99836218+Krikorios@users.noreply.github.com> Date: Thu, 7 May 2026 18:53:40 +0300 Subject: [PATCH] Restore staged uploads after page reload --- routers/upload.py | 26 ++++++++++++++++++++++++++ templates/index.html | 13 ++++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/routers/upload.py b/routers/upload.py index 144868b..c5bb631 100644 --- a/routers/upload.py +++ b/routers/upload.py @@ -205,12 +205,34 @@ async def upload_page(request: Request): SUM(CASE WHEN status='error' THEN 1 ELSE 0 END) AS errors FROM documents WHERE status != 'staged'""" ).fetchone() + staged_rows = conn.execute( + """SELECT id, image_path, page_number + FROM documents + WHERE status='staged' + ORDER BY id""" + ).fetchall() + + staged_documents = [] + for row in staged_rows: + image_name = Path(row["image_path"]).name + page_number = row["page_number"] + if page_number: + image_name = f"{image_name} (p{page_number})" + staged_documents.append( + { + "id": row["id"], + "image_path": row["image_path"], + "name": image_name, + } + ) + return render_template( templates, request, "index.html", { "stats": dict(stats) if stats else {}, + "staged_documents": staged_documents, "providers": get_available_providers(), "default_provider": get_default_provider(), }, @@ -397,12 +419,16 @@ async def process_staged( provider = get_default_provider() ids = [int(x) for x in doc_ids.split(",") if x.strip().isdigit()] + if not ids: + return RedirectResponse("/?staged=0", status_code=303) with get_db() as conn: rows = conn.execute( f"SELECT id, image_path FROM documents WHERE id IN ({','.join('?' * len(ids))}) AND status='staged'", ids, ).fetchall() + if not rows: + return RedirectResponse("/?staged=0", status_code=303) for row in rows: conn.execute( "UPDATE documents SET status='pending', provider=?, updated_at=CURRENT_TIMESTAMP WHERE id=?", diff --git a/templates/index.html b/templates/index.html index d9d65be..2d38eae 100644 --- a/templates/index.html +++ b/templates/index.html @@ -124,7 +124,7 @@ {% block scripts %} {% endblock %}