maziggy
83a7b75b14
fix(queue): persist selected plate to the archive; reconcile archive on offline stop ( #2603 )
...
A print queued from a specific plate of a multi-plate 3MF showed as Plate 1
in Print History after cancellation: the archive derives its plate from the
filename, but a whole multi-plate 3MF uploads under one name with no plate
suffix, so the parser defaulted to plate 1 and nothing copied the queue
item's plate_id onto the archive (which had no plate field).
Add a nullable print_archives.plate_id, copy it from the queue item at
dispatch (archive- and library-file paths), expose it in the archive API,
and render it in Print History. A startup backfill copies the plate onto
existing archives from their linked queue rows. Column add + backfill are
identical on SQLite and Postgres.
Also fix a related lifecycle bug: stopping a printing item while the printer
was offline left the linked archive stuck at "printing" (queue row
cancelled, but no MQTT completion ever arrives to reconcile the archive).
The offline-stop path now closes the archive out directly; the online path
still defers to the MQTT completion event.
2026-07-19 09:29:54 +02:00
..
2026-06-06 10:41:28 +02:00
2026-07-18 16:54:48 +02:00
2026-07-01 09:50:30 +02:00
2026-06-04 11:30:26 +02:00
2026-07-18 08:11:44 +02:00
2026-07-18 13:06:01 +02:00
2026-07-16 07:50:51 +02:00
2026-07-19 09:29:54 +02:00
2026-06-03 10:14:57 +02:00
2026-04-27 16:14:31 +02:00
2026-05-30 13:49:09 +02:00
2026-06-20 12:07:20 +02:00
2026-07-16 15:21:47 +02:00
2026-07-17 07:03:10 +02:00
2026-05-22 10:02:41 +02:00
2026-06-06 13:40:56 +02:00
2026-04-27 16:32:10 +02:00
2026-06-25 09:00:57 +02:00
2026-07-14 11:29:56 +02:00
2026-05-24 12:51:24 +02:00
2026-05-08 09:01:51 +02:00
2026-05-15 15:43:37 +02:00
2026-07-18 16:15:09 +02:00
2026-05-08 11:52:42 +02:00
2026-07-18 13:48:14 +02:00
2026-05-24 10:16:30 +02:00
2026-06-05 13:53:26 +02:00
2026-04-26 14:24:28 +02:00
2026-05-29 10:55:41 +02:00
2026-05-24 08:49:21 +02:00
2026-06-09 07:38:59 +02:00
2026-07-18 16:15:09 +02:00
2026-05-28 08:40:43 +02:00
2026-06-05 13:53:26 +02:00
2026-07-09 08:17:59 +02:00
2026-06-06 13:30:13 +02:00
2026-07-13 09:18:17 +02:00
2026-06-19 11:29:07 +02:00
2026-04-27 16:32:10 +02:00
2026-05-11 12:27:41 +02:00
2026-05-03 08:12:36 +02:00
2026-05-08 14:06:40 +02:00
2026-06-20 12:07:20 +02:00
2026-07-18 13:48:14 +02:00
2026-07-11 14:44:45 +02:00
2026-05-16 14:35:47 +02:00
2026-06-02 14:51:08 +02:00
2026-06-02 14:51:08 +02:00
2026-05-22 10:22:14 +02:00
2026-07-12 08:44:53 +02:00
2026-06-22 14:23:30 +02:00
2026-06-17 11:33:23 +02:00
2026-06-17 11:33:23 +02:00
2026-04-26 10:01:17 +02:00
2026-07-14 11:29:56 +02:00
2026-07-14 11:29:56 +02:00
2026-07-14 10:35:58 +02:00
2026-06-02 10:02:17 +02:00
2026-06-02 10:02:17 +02:00
2026-06-02 12:42:16 +02:00
2026-06-20 08:28:44 +02:00
2026-05-21 08:45:59 +02:00
2026-05-15 08:50:37 +02:00
2026-05-15 08:50:37 +02:00
2026-05-15 08:50:37 +02:00
2026-05-15 08:50:37 +02:00
2026-05-08 11:52:42 +02:00
2026-06-25 14:54:27 +02:00
2026-07-11 14:22:31 +02:00
2026-04-29 11:17:43 +02:00
2026-05-17 09:30:02 +02:00
2026-07-18 09:58:21 +02:00
2026-05-20 08:12:17 +02:00
2026-06-09 09:16:36 +02:00
2026-06-20 12:07:20 +02:00
2026-07-09 08:43:59 +02:00
2026-07-16 09:20:12 +02:00
2026-05-21 08:30:17 +02:00
2026-06-20 12:55:24 +02:00
2026-05-04 10:34:36 +02:00
2026-07-17 10:02:19 +02:00
2026-06-08 08:18:13 +02:00
2026-06-11 09:23:03 +02:00
2026-06-25 11:07:29 +02:00
2026-07-18 13:06:01 +02:00
2026-05-05 16:00:22 +02:00
2026-06-22 14:13:44 +02:00
2026-05-19 10:53:36 +02:00
2026-05-25 09:04:47 +02:00
2026-06-02 12:12:54 +02:00
2026-07-07 12:17:46 +02:00
2026-07-05 09:32:02 +02:00
2026-07-07 12:17:46 +02:00
2026-07-18 16:41:15 +02:00
2026-06-29 12:59:09 +02:00
2026-07-19 09:29:54 +02:00
2026-07-07 10:07:47 +02:00
2026-07-19 08:34:38 +02:00
2026-04-28 17:19:17 +02:00
2026-06-09 10:43:07 +02:00
2026-05-20 11:25:45 +02:00
2026-05-24 09:18:38 +02:00
2026-07-17 06:51:51 +02:00
2026-07-08 08:57:56 +02:00
2026-07-18 16:15:09 +02:00
2026-07-18 16:15:09 +02:00
2026-07-14 10:35:58 +02:00
2026-06-17 12:04:57 +02:00
2026-07-02 11:32:22 +02:00
2026-05-14 15:28:41 +02:00
2026-06-12 10:14:06 +02:00
2026-06-12 10:14:06 +02:00
2026-06-28 13:52:05 +02:00
2026-04-29 09:13:33 +02:00
2026-05-12 16:02:24 +02:00
2026-05-08 11:52:42 +02:00
2026-05-08 14:28:41 +02:00
2026-05-08 11:52:42 +02:00
2026-05-18 08:51:27 +02:00
2026-06-17 11:33:23 +02:00
2026-06-25 10:46:57 +02:00
2026-05-12 08:48:30 +02:00
2026-05-20 11:00:54 +02:00
2026-07-15 07:29:16 +02:00
2026-05-08 11:52:42 +02:00
2026-05-22 09:05:25 +02:00
2026-07-14 10:35:58 +02:00
2026-06-14 10:58:02 +02:00
2026-07-12 08:44:53 +02:00
2026-06-18 11:46:07 +02:00
2026-07-17 08:26:23 +02:00
2026-05-24 12:30:12 +02:00
2026-05-12 09:20:53 +02:00
2026-04-26 14:24:28 +02:00
2026-06-27 11:28:00 +02:00
2026-05-15 08:50:37 +02:00
2026-07-15 07:29:16 +02:00
2026-07-18 13:18:59 +02:00
2026-06-22 11:15:39 +02:00
2026-06-05 17:19:16 +02:00
2026-05-30 13:34:10 +02:00
2026-05-30 13:34:10 +02:00
2026-07-05 10:32:13 +02:00
2026-06-02 14:33:20 +02:00
2026-07-11 10:06:03 +02:00
2026-07-02 10:13:01 +02:00
2026-06-03 10:04:37 +02:00
2026-06-11 13:35:20 +02:00
2026-06-27 11:28:00 +02:00