Drag-Griff statt ganzem Element + Uebungs-Reihenfolge beim Start uebernehmen
Image bauen und in die Registry schieben / build (push) Successful in 6s
Image bauen und in die Registry schieben / build (push) Successful in 6s
- Sortieren nur ueber einen kleinen Griff (Punkt-Icon) links im Uebungskopf; das ganze Element ist nicht mehr draggable (kein versehentliches Ziehen beim Tippen/Auswaehlen) - Beim Session-Start wird die Uebungs-Reihenfolge der letzten abgeschlossenen Session desselben Tags uebernommen (server-seitig in create_session, in session.fields.exerciseOrder) - Tests: 170 Checks gruen (40+18+52+32+28)
This commit is contained in:
1 parent
7c5045cec8
commit
aebd7f40e7
5 files changed
+60
-12
No files matched your search
@@ -434,6 +434,26 @@ def fetch_session(user_id, sid):
|
||||
return d
|
||||
|
||||
|
||||
def last_exercise_order(user_id, activity, day):
|
||||
"""Uebungs-Reihenfolge der letzten abgeschlossenen Session (Tag/Kategorie)."""
|
||||
con = db()
|
||||
clause, extra = _user_clause(user_id)
|
||||
rows = con.execute(
|
||||
f"SELECT fields FROM sessions WHERE activity=? AND day=? AND status='done' "
|
||||
f"AND {clause} ORDER BY date DESC, id DESC LIMIT 10",
|
||||
[activity, day] + extra).fetchall()
|
||||
con.close()
|
||||
for r in rows:
|
||||
try:
|
||||
f = json.loads(r["fields"] or "{}")
|
||||
except Exception:
|
||||
continue
|
||||
order = f.get("exerciseOrder")
|
||||
if isinstance(order, list) and order:
|
||||
return order
|
||||
return None
|
||||
|
||||
|
||||
def create_session(user_id, data):
|
||||
activity = _clean_str(data.get("activity"))
|
||||
if not activity:
|
||||
@@ -441,12 +461,15 @@ def create_session(user_id, data):
|
||||
sdate = _clean_str(data.get("date")) or date.today().isoformat()
|
||||
day = _clean_str(data.get("day"))
|
||||
start = _clean_str(data.get("start_time")) or datetime.now().strftime("%H:%M")
|
||||
# Reihenfolge der Uebungen aus der letzten abgeschlossenen Session uebernehmen
|
||||
order = last_exercise_order(user_id, activity, day)
|
||||
fields = json.dumps({"exerciseOrder": order}) if order else "{}"
|
||||
con = db()
|
||||
cur = con.execute(
|
||||
"INSERT INTO sessions(activity,day,date,start_time,status,created_at,user_id) "
|
||||
"VALUES(?,?,?,?,?,?,?)",
|
||||
"INSERT INTO sessions(activity,day,date,start_time,status,created_at,user_id,fields) "
|
||||
"VALUES(?,?,?,?,?,?,?,?)",
|
||||
(activity, day, sdate, start, "active",
|
||||
datetime.now().isoformat(timespec="seconds"), user_id))
|
||||
datetime.now().isoformat(timespec="seconds"), user_id, fields))
|
||||
con.commit()
|
||||
sid = cur.lastrowid
|
||||
con.close()
|
||||
|
||||
Reference in new issue
Block a user