From b55edceff8e975133e847912c7bc7be4a6eb7f43 Mon Sep 17 00:00:00 2001 From: Jo Date: Tue, 7 Jul 2026 13:25:44 +0200 Subject: [PATCH] fix: skip capacity/overlap checks when already_done=true --- app.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app.py b/app.py index 602a198..ed6e20a 100644 --- a/app.py +++ b/app.py @@ -1789,6 +1789,14 @@ def api_new_slot(): cooldown_s = int(s.get('cooldown_minutes', 15)) * 60 start_dt = datetime.fromisoformat(start_str) 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) if conflict: conn.close() @@ -1799,14 +1807,6 @@ def api_new_slot(): if over: 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 - 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(?,?,?,?,?)', (job_id, printer_id, start_dt.isoformat(), end_dt.isoformat(), 'planned')) conn.commit(); conn.close()