selected-layout-stay: отбор остаётся на кандидатах; отобранные — layout на всю высоту (резюме под кнопками, редактор+оригинал в рост, публикация внизу)

This commit is contained in:
kpa39l
2026-09-15 18:17:07 +00:00
parent 51a13de28c
commit 8d26c97e6b
8 changed files with 283 additions and 97 deletions
+4 -4
View File
@@ -377,13 +377,13 @@ def selected(request: Request, direction: str = "", own: str = "", q: str = "",
@app.post("/posts/{post_id}/select")
def post_select(post_id: int, request: Request,
group_by: str = Form(""), direction: str = Form(""), own: str = Form(""), q: str = Form("")):
"""Отобрать кандидата (new → selected). Затем переходим в отобранные."""
"""Отобрать кандидата (new → selected). Остаёмся на странице кандидатов."""
_require_auth(request)
conn = _db()
conn.execute("UPDATE posts SET status='selected' WHERE id=? AND status='new' AND is_own=0", (post_id,))
conn.commit()
conn.close()
return RedirectResponse(url=_cand_back(group_by, direction, own, q, src="selected", selected=post_id), status_code=302)
return RedirectResponse(url=_cand_back(group_by, direction, own, q, src="candidates"), status_code=302)
@app.post("/candidates/select")
@@ -415,11 +415,11 @@ def candidates_bulk(request: Request, action: str = Form(...), ids: list[int] =
ph = ", ".join("?" * len(ids))
rows = conn.execute(f"SELECT * FROM posts WHERE id IN ({ph})", ids).fetchall()
if action == "select":
# отбор кандидатов (new → selected)
# отбор кандидатов (new → selected); остаёмся на странице кандидатов
conn.execute("UPDATE posts SET status='selected' WHERE id IN ({}) AND status='new' AND is_own=0".format(ph), ids)
conn.commit()
conn.close()
return RedirectResponse(url=_cand_back(group_by, direction, own, q, src="selected"), status_code=302)
return RedirectResponse(url=back, status_code=302)
if action == "reject":
conn.execute(f"UPDATE posts SET status='rejected' WHERE id IN ({ph})", ids)
conn.commit()