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 @@