Auto-create todos on print events
- 'Clean build plate on {printer}' after every 3rd completed print per printer
- 'Check filament status' when a roll drops below 100 g after starting a job
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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"(AMS slot {roll['slot']} — {roll['material']} {roll['color']}, "
|
||||||
f"{roll['weight_remaining_g']} g remaining, least-full roll selected)"
|
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:
|
else:
|
||||||
db.add(JobLog(job_id=job_id, message=f"FilamentDB: print log failed for roll #{roll['roll_id']}"))
|
db.add(JobLog(job_id=job_id, message=f"FilamentDB: print log failed for roll #{roll['roll_id']}"))
|
||||||
else:
|
else:
|
||||||
@@ -422,6 +424,16 @@ def finish_job(job_id: int, db: Session = Depends(get_db)):
|
|||||||
job.printer.status = PrinterStatus.idle
|
job.printer.status = PrinterStatus.idle
|
||||||
|
|
||||||
db.add(JobLog(job_id=job_id, message=f"Job finished on {printer_name}"))
|
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()
|
db.commit()
|
||||||
return RedirectResponse(url=f"/jobs/{job_id}", status_code=HTTP_303_SEE_OTHER)
|
return RedirectResponse(url=f"/jobs/{job_id}", status_code=HTTP_303_SEE_OTHER)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user