Finishing up color printing
This commit is contained in:
parent
095ab9746f
commit
35ae07d7e3
5 changed files with 32 additions and 12 deletions
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -35,3 +35,4 @@
|
|||
You don't have any files. Upload something!
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
<input type="hidden" name="action" value="enqueue" />
|
||||
<input type="hidden" name="file_id" value="{{ file.id }}" />
|
||||
<select name="color_id">
|
||||
{% for c in ctx.db.list_colors() %}
|
||||
<option value="{{c.id}}" {% if file.color_id == c.id %}selected{%endif%}>{{c.name}}</option>
|
||||
{% endfor %}
|
||||
{%- for c in ctx.db.list_colors() %}
|
||||
<option value="{{c.id}}" {% if file.color_id == c.id %}selected{%endif%}>{{c.name}}</option>
|
||||
{%- endfor %}
|
||||
</select>
|
||||
<input id="submit" type="image" src="/static/print.svg" height="24" width="24" />
|
||||
</form>
|
||||
|
|
Loading…
Reference in a new issue