diff --git a/projects/tentacles/src/tentacles/__main__.py b/projects/tentacles/src/tentacles/__main__.py index ddd310f..09bd9b0 100644 --- a/projects/tentacles/src/tentacles/__main__.py +++ b/projects/tentacles/src/tentacles/__main__.py @@ -2,7 +2,7 @@ """The core app entrypoint.""" -from datetime import datetime +from datetime import datetime, timedelta import logging from pathlib import Path import tomllib @@ -46,6 +46,7 @@ def create_j2_request_global(app): app.jinja_env.globals["ctx"] = ctx app.jinja_env.globals["request"] = request app.jinja_env.globals["datetime"] = datetime + app.jinja_env.globals["timedelta"] = timedelta def user_session(): diff --git a/projects/tentacles/src/tentacles/db.py b/projects/tentacles/src/tentacles/db.py index 4c45767..a374296 100644 --- a/projects/tentacles/src/tentacles/db.py +++ b/projects/tentacles/src/tentacles/db.py @@ -21,7 +21,7 @@ from aiosql.query_loader import QueryLoader _sqlite = get_adapter("sqlite3") _loader = QueryLoader(_sqlite, None) -_queries = Queries(_sqlite) +_queries = Queries(_sqlite, kwargs_only=False) for f in files("tentacles.sql").iterdir(): if f.is_file() and f.name.endswith(".sql"): print("Loading", f) diff --git a/projects/tentacles/src/tentacles/sql/jobs.sql b/projects/tentacles/src/tentacles/sql/jobs.sql index 0eba47c..0705964 100644 --- a/projects/tentacles/src/tentacles/sql/jobs.sql +++ b/projects/tentacles/src/tentacles/sql/jobs.sql @@ -26,6 +26,9 @@ CREATE TABLE IF NOT EXISTS jobs ( , FOREIGN KEY(printer_id) REFERENCES printer(id) ); +-- name: migration-0001-jobs-add-print-time# +ALTER TABLE jobs ADD COLUMN time_left INTEGER DEFAULT (0); + -- name: create-job^ INSERT INTO jobs ( user_id @@ -81,6 +84,7 @@ SELECT , (SELECT name FROM filament WHERE id = fa.filament_id) AS filament_name , (SELECT name FROM job_statuses WHERE id = j.status_id) AS status , j.started_at + , j.time_left , j.cancelled_at , j.finished_at , j.user_id @@ -220,3 +224,10 @@ UPDATE jobs WHERE id = :jid ; + +-- name: update-job-time-left! +UPDATE jobs + SET time_left = :time_left +WHERE + id = :jid +; diff --git a/projects/tentacles/src/tentacles/sql/printers.sql b/projects/tentacles/src/tentacles/sql/printers.sql index 054ad19..ae31f77 100644 --- a/projects/tentacles/src/tentacles/sql/printers.sql +++ b/projects/tentacles/src/tentacles/sql/printers.sql @@ -78,6 +78,9 @@ ALTER TABLE printers ADD enabled BOOLEAN DEFAULT TRUE; -- name: migration-0005-create-printer-nozzle# ALTER TABLE printers ADD nozzle_diameter FLOAT DEFAULT 0.4; +-- name: migration-0006-create-printer-level-date# +ALTER TABLE printers ADD last_level_date TEXT DEFAULT NULL; + -- name: try-create-printer^ INSERT INTO printers ( name @@ -98,6 +101,7 @@ SELECT , p.stream_url , p.api_key , p.last_poll_date + , p.last_level_date , p.filament_id , p.chassis_id , p.enabled @@ -116,6 +120,7 @@ SELECT , p.stream_url , p.api_key , p.last_poll_date + , p.last_level_date , s.name as status , p.enabled , f.name as filament_name @@ -166,6 +171,14 @@ WHERE id = :pid ; +-- name: update-printer-level-date! +UPDATE printers +SET + , last_level_date = datetime('now') +WHERE + id = :pid +; + -- name: edit-printer! UPDATE printers SET diff --git a/projects/tentacles/src/tentacles/static/css/style.scss b/projects/tentacles/src/tentacles/static/css/style.scss index 16ae715..d3f6518 100644 --- a/projects/tentacles/src/tentacles/static/css/style.scss +++ b/projects/tentacles/src/tentacles/static/css/style.scss @@ -22,6 +22,14 @@ margin-top: 4px; } +.div .job { + +} + +.div .job:not(:last-child) { + border-bottom: none; +} + .file .details, .printer .details, .key .details, diff --git a/projects/tentacles/src/tentacles/templates/files_list.html.j2 b/projects/tentacles/src/tentacles/templates/files_list.html.j2 index ef907d8..283bce6 100644 --- a/projects/tentacles/src/tentacles/templates/files_list.html.j2 +++ b/projects/tentacles/src/tentacles/templates/files_list.html.j2 @@ -25,8 +25,8 @@ {% endif %}