From 35ae07d7e310300a706f8665826a1aae01a5825c Mon Sep 17 00:00:00 2001 From: Reid D McKenzie Date: Fri, 7 Feb 2025 12:57:42 -0700 Subject: [PATCH] Finishing up color printing --- .../src/tentacles/blueprints/job_ui.py | 9 +++++++- .../tentacles/src/tentacles/sql/files.sql | 7 ++++++- projects/tentacles/src/tentacles/sql/jobs.sql | 21 ++++++++++++------- .../tentacles/templates/files_list.html.j2 | 1 + .../src/tentacles/templates/macros.html.j2 | 6 +++--- 5 files changed, 32 insertions(+), 12 deletions(-) diff --git a/projects/tentacles/src/tentacles/blueprints/job_ui.py b/projects/tentacles/src/tentacles/blueprints/job_ui.py index 05a5b07..d9ae2fa 100644 --- a/projects/tentacles/src/tentacles/blueprints/job_ui.py +++ b/projects/tentacles/src/tentacles/blueprints/job_ui.py @@ -46,7 +46,14 @@ def manipulate_jobs(): if job := ctx.db.fetch_job( uid=ctx.uid, jid=int(request.form.get("job_id")) ): - ctx.db.create_job(uid=ctx.uid, fid=job.file_id) + ctx.db.create_job( + uid=ctx.uid, + fid=job.file_id, + cid=job.color_id, + # FIXME: Need to dissociate job copies from the original mapped printer. Can't tell the difference + # between the requested printer in the original job and the mapped printer from a scheduler run. + pid=None, + ) flash("Job created!", category="info") else: flash("Could not duplicate", category="error") diff --git a/projects/tentacles/src/tentacles/sql/files.sql b/projects/tentacles/src/tentacles/sql/files.sql index 08013b9..80a0bc3 100644 --- a/projects/tentacles/src/tentacles/sql/files.sql +++ b/projects/tentacles/src/tentacles/sql/files.sql @@ -38,10 +38,15 @@ RETURNING -- name: list-files SELECT - * + f.id + , f.filename + , f.user_id , (SELECT COUNT(*) FROM jobs WHERE file_id = f.id AND status_id > 1) AS `print_successes` , (SELECT COUNT(*) FROM jobs WHERE file_id = f.id AND status_id < 0) AS `print_failures` + , fa.color_id as color_id FROM files f +INNER JOIN file_analysis fa + ON f.id = fa.file_id WHERE (:uid IS NULL OR user_id = :uid) ORDER BY diff --git a/projects/tentacles/src/tentacles/sql/jobs.sql b/projects/tentacles/src/tentacles/sql/jobs.sql index ea737f1..990f485 100644 --- a/projects/tentacles/src/tentacles/sql/jobs.sql +++ b/projects/tentacles/src/tentacles/sql/jobs.sql @@ -27,13 +27,10 @@ CREATE TABLE IF NOT EXISTS jobs ( ); -- name: migration-0001-jobs-add-print-time# -ALTER TABLE jobs ADD COLUMN time_left INTEGER DEFAULT (0); +ALTER TABLE jobs ADD COLUMN IF NOT EXISTS time_left INTEGER DEFAULT (0); -- name: migration-0002-jobs-add-print-color# -ALTER TABLE jobs ADD COLUMN color_id INTEGER DEFAULT (0); - --- name: migration-0003-jobs-add-queued-at# -ALTER TABLE jobs ADD COLUMN queued_at TEXT DEFAULT (datetime('now')); +ALTER TABLE jobs ADD COLUMN IF NOT EXISTS color_id INTEGER DEFAULT (NULL); -- name: create-job^ INSERT INTO jobs ( @@ -93,7 +90,7 @@ SELECT , fa.nozzle_diameter , fa.filament_id , (SELECT name FROM filament WHERE id = fa.filament_id) AS filament_name - , (SELECT name AS name FROM filament_color WHERE id = fa.color_id) AS color_name + , (SELECT name AS name FROM filament_color WHERE id = coalesce(j.color_id, fa.color_id)) AS color_name , (SELECT name FROM job_statuses WHERE id = j.status_id) AS status , j.started_at , j.time_left @@ -126,7 +123,17 @@ LIMIT 1 -- name: list-job-history SELECT - j.* + j.id + , j.user_id + , j.file_id + , j.printer_id + , j.started_at + , j.cancelled_at + , j.finished_at + , j.time_left + , j.status_id + , j.message + , coalesce(j.color_id, fa.color_id) as color_id , fa.id as analysis_id , (SELECT name FROM job_statuses WHERE id = j.status_id) AS `status` FROM jobs j diff --git a/projects/tentacles/src/tentacles/templates/files_list.html.j2 b/projects/tentacles/src/tentacles/templates/files_list.html.j2 index 8872f02..229bc22 100644 --- a/projects/tentacles/src/tentacles/templates/files_list.html.j2 +++ b/projects/tentacles/src/tentacles/templates/files_list.html.j2 @@ -35,3 +35,4 @@ You don't have any files. Upload something! {% endif %} {% endwith %} + diff --git a/projects/tentacles/src/tentacles/templates/macros.html.j2 b/projects/tentacles/src/tentacles/templates/macros.html.j2 index a003ba0..101ffda 100644 --- a/projects/tentacles/src/tentacles/templates/macros.html.j2 +++ b/projects/tentacles/src/tentacles/templates/macros.html.j2 @@ -5,9 +5,9 @@