Wand: Queue-Strip nur bei Ablauf; Start wartet auf printing statt Falsch-Fertig.

This commit is contained in:
Dominic Gundel committed 2026-10-19 11:35:59 +02:00
1 parent f1f79c2ce2
commit f034c5e626
3 files changed
+17 -7

No files matched your search

+8
View File
@@ -4,6 +4,14 @@ Alle Änderungen an Grotti. Format nach [Keep a Changelog](https://keepachangelo
## [Unreleased]
### Geändert
- **Wand:** „Aus der Warteschlange“-Strip nur noch bei Ablauf (mit Schritten); einfacher Queue-Druck zeigt nur DRUCKT.
### Behoben
- **Queue zu früh „Fertig.“:** Nach Start bleibt Phase `starting`, bis Moonraker `printing` meldet — alter `complete`/`standby` schließt den Job nicht mehr.
## [3.5.0] – 2026-10-19
### Neu
+5 -4
View File
@@ -421,16 +421,16 @@ class PrintQueueDispatcher:
from grotti import orders
orders.attach_order_item_to_live_run(wconn, host, name, oid)
# Nicht sofort „done“: sonst greift der nächste Wartende, während
# der Drucker noch druckt (Live-Cache kann kurz FREE bleiben).
# Phase „starting“ lassen, bis Moonraker printing meldet.
# Sofort print_active + alter complete/standby → fälschlich „Fertig.“
store.update_print_queue(
wconn,
item_id,
{
"status": "running",
"message": "Druckt auf %s: %s" % (printer_copy["name"], name),
"message": "Startet auf %s: %s" % (printer_copy["name"], name),
"host": host,
"phase": "print_active",
"phase": "starting",
"phase_started_at": "now",
},
)
@@ -498,6 +498,7 @@ class PrintQueueDispatcher:
"message": "Druckt…",
},
)
# complete/standby vom vorherigen Auftrag: noch warten, nicht „Fertig.“
return
if phase != "print_active":
return
+4 -3
View File
@@ -322,13 +322,14 @@ function actionsHtml(state, printer) {
function flowHtml(printer) {
const job = printer.queue_running;
const bits = [];
if (job) {
// Nur Ablauf braucht den Strip (Schritte). Einfacher Queue-Druck: Karte zeigt schon DRUCKT.
if (job && job.is_ablauf) {
const rep = repeatText(job);
const title = job.is_ablauf ? "Ablauf" + (rep ? " " + rep : "") : "Aus der Warteschlange";
const title = "Ablauf" + (rep ? " " + rep : "");
bits.push(`<div class="strip flow">
<div class="flow-head">${icon("queue")}<span class="grow">${escapeHtml(title)}</span>
<button type="button" class="icon-btn danger" data-cancel-run="${job.id}" title="Ablauf abbrechen">${icon("x")}</button></div>
${job.is_ablauf ? stepsHtml(job.step_labels, job.display_step_index != null ? job.display_step_index : job.step_index) : ""}
${stepsHtml(job.step_labels, job.display_step_index != null ? job.display_step_index : job.step_index)}
${job.message ? `<div class="flow-msg">${escapeHtml(phaseText(job))}</div>` : ""}
</div>`);
}