fix: skip capacity/overlap checks when already_done=true
Deploy via Portainer / deploy (push) Successful in 0s
Deploy via Portainer / deploy (push) Successful in 0s
This commit is contained in:
@@ -1789,6 +1789,14 @@ def api_new_slot():
|
|||||||
cooldown_s = int(s.get('cooldown_minutes', 15)) * 60
|
cooldown_s = int(s.get('cooldown_minutes', 15)) * 60
|
||||||
start_dt = datetime.fromisoformat(start_str)
|
start_dt = datetime.fromisoformat(start_str)
|
||||||
end_dt = start_dt + timedelta(seconds=job['print_time_s'] + cooldown_s)
|
end_dt = start_dt + timedelta(seconds=job['print_time_s'] + cooldown_s)
|
||||||
|
already_done = bool(d.get('already_done', False))
|
||||||
|
if already_done:
|
||||||
|
# Retroactive — skip capacity/overlap checks, insert as done
|
||||||
|
conn.execute(
|
||||||
|
'INSERT INTO print_slots(job_id,printer_id,planned_start,planned_end,status) VALUES(?,?,?,?,?)',
|
||||||
|
(job_id, printer_id, start_dt.isoformat(), end_dt.isoformat(), 'done'))
|
||||||
|
conn.commit(); conn.close()
|
||||||
|
return jsonify({'ok': True})
|
||||||
conflict = _check_overlap(conn, printer_id, start_dt, end_dt)
|
conflict = _check_overlap(conn, printer_id, start_dt, end_dt)
|
||||||
if conflict:
|
if conflict:
|
||||||
conn.close()
|
conn.close()
|
||||||
@@ -1799,14 +1807,6 @@ def api_new_slot():
|
|||||||
if over:
|
if over:
|
||||||
conn.close()
|
conn.close()
|
||||||
return jsonify({'error': f"Capacité maximale atteinte : {peak} impression(s) déjà en cours sur ce créneau (limite : {max_printers} simultanées). Décalez l'horaire ou attendez qu'une imprimante se libère."}), 409
|
return jsonify({'error': f"Capacité maximale atteinte : {peak} impression(s) déjà en cours sur ce créneau (limite : {max_printers} simultanées). Décalez l'horaire ou attendez qu'une imprimante se libère."}), 409
|
||||||
already_done = bool(d.get('already_done', False))
|
|
||||||
if already_done:
|
|
||||||
# Retroactive — skip capacity/overlap checks, insert as done
|
|
||||||
conn.execute(
|
|
||||||
'INSERT INTO print_slots(job_id,printer_id,planned_start,planned_end,status) VALUES(?,?,?,?,?)',
|
|
||||||
(job_id, printer_id, start_dt.isoformat(), end_dt.isoformat(), 'done'))
|
|
||||||
conn.commit(); conn.close()
|
|
||||||
return jsonify({'ok': True})
|
|
||||||
conn.execute('INSERT INTO print_slots(job_id,printer_id,planned_start,planned_end,status) VALUES(?,?,?,?,?)',
|
conn.execute('INSERT INTO print_slots(job_id,printer_id,planned_start,planned_end,status) VALUES(?,?,?,?,?)',
|
||||||
(job_id, printer_id, start_dt.isoformat(), end_dt.isoformat(), 'planned'))
|
(job_id, printer_id, start_dt.isoformat(), end_dt.isoformat(), 'planned'))
|
||||||
conn.commit(); conn.close()
|
conn.commit(); conn.close()
|
||||||
|
|||||||
Reference in New Issue
Block a user