diff --git a/app/routers/ui.py b/app/routers/ui.py index 80f2550..0923b80 100644 --- a/app/routers/ui.py +++ b/app/routers/ui.py @@ -359,6 +359,8 @@ def start_job(job_id: int, printer_id: int = Form(...), db: Session = Depends(ge f"(AMS slot {roll['slot']} — {roll['material']} {roll['color']}, " f"{roll['weight_remaining_g']} g remaining, least-full roll selected)" ))) + if roll["weight_remaining_g"] - weight_g < 100: + db.add(Todo(title="Check filament status")) else: db.add(JobLog(job_id=job_id, message=f"FilamentDB: print log failed for roll #{roll['roll_id']}")) else: @@ -422,6 +424,16 @@ def finish_job(job_id: int, db: Session = Depends(get_db)): job.printer.status = PrinterStatus.idle db.add(JobLog(job_id=job_id, message=f"Job finished on {printer_name}")) + + # Every 3rd completed print on this printer → cleaning reminder + if job.printer_id: + done_count = db.query(PrintJob).filter( + PrintJob.printer_id == job.printer_id, + PrintJob.status == JobStatus.done, + ).count() + if (done_count + 1) % 3 == 0: + db.add(Todo(title=f"Clean build plate on {printer_name}", printer_id=job.printer_id)) + db.commit() return RedirectResponse(url=f"/jobs/{job_id}", status_code=HTTP_303_SEE_OTHER)