generate new numbers ony by one

This commit is contained in:
miklo 2025-11-23 23:02:41 +01:00
parent d5da62d800
commit 4a435037cd
2 changed files with 33 additions and 27 deletions

44
app.py
View File

@ -66,41 +66,43 @@ def current_api():
# @app.route("/admin", methods=["GET", "POST"]) # @app.route("/admin", methods=["GET", "POST"])
def admin(): def admin():
db = get_db() db = get_db()
if request.method == "POST": if request.method == "POST":
action = request.form.get("action") action = request.form.get("action")
if action == "start": if action == "add":
n = int(request.form.get("count", "0")) # dodaj nowy numer na końcu puli
db.execute("DELETE FROM items") cur = db.execute("SELECT number FROM items ORDER BY id DESC LIMIT 1").fetchone()
for i in range(1, n + 1): if cur:
db.execute( try:
"INSERT INTO items (number, status) VALUES (?, 'waiting')", last = int(cur["number"])
(str(i),), except:
) last = 0
new = last + 1
else:
new = 1
db.execute("INSERT INTO items (number, status) VALUES (?, 'waiting')", (str(new),))
db.commit() db.commit()
elif action == "call": elif action == "call":
num = request.form.get("num") num = request.form.get("num")
# mark chosen number as called db.execute("UPDATE items SET status='called' WHERE number=? AND status='waiting'", (num,))
db.execute(
"UPDATE items SET status='called' WHERE number=? AND status='waiting'",
(num,),
)
db.commit() db.commit()
elif action == "done": elif action == "done":
num = request.form.get("num") num = request.form.get("num")
db.execute( db.execute("UPDATE items SET status='done' WHERE number=? AND status='called'", (num,))
"UPDATE items SET status='done' WHERE number=? AND status='called'",
(num,),
)
db.commit()
elif action == "reset":
db.execute("DELETE FROM items")
db.commit() db.commit()
elif action == "return": elif action == "return":
num = request.form.get("num") num = request.form.get("num")
if num: if num:
# ustaw ponownie na 'waiting' tylko jeśli aktualnie było 'called'
db.execute("UPDATE items SET status='waiting' WHERE number=? AND status='called'", (num,)) db.execute("UPDATE items SET status='waiting' WHERE number=? AND status='called'", (num,))
db.commit() db.commit()
elif action == "reset":
db.execute("DELETE FROM items")
db.commit()
return redirect(url_for("admin")) return redirect(url_for("admin"))
cur_wait = db.execute( cur_wait = db.execute(

View File

@ -22,12 +22,16 @@
<body> <body>
<h2>Panel admina</h2> <h2>Panel admina</h2>
<form method="post" style="margin-bottom:12px"> <form method="post" style="margin-bottom:18px">
<label>Start — liczba numerów: <div style="display:flex;flex-direction:column;gap:10px;max-width:220px">
<input name="count" type="number" min="1" value="20" style="width:80px;margin-left:6px"> <button class="btn" name="action" value="add" style="background:#4caf50;color:#fff;border:none;padding:8px 12px;border-radius:6px">
</label> Dodaj numer
<button class="btn" name="action" value="start">Start</button> </button>
<button class="btn" name="action" value="reset">Reset</button>
<button class="btn" name="action" value="reset" style="background:#e53935;color:#fff;border:none;padding:8px 12px;border-radius:6px">
Reset — usuń wszystkie
</button>
</div>
</form> </form>
<div class="grid"> <div class="grid">