docs(flomni): document "Load into editor"
CI for csaxs_bec / test (push) Successful in 1m50s

User manual: new paragraph in the queueing section explaining the
button and that Submit/"Add to queue" still gate the actual write.

AI_docs: plan section 6.8 records the design (not a third write path,
confirm-before-discard, button-eligibility gating) and the
_enter_edit_mode_with() refactor; GUI test checklist gets section 6d
(test steps 42-47) and a new section 1 item 11, with the status line
updated to flag 6c/6d as not yet clicked through.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
x01dc
2026-07-14 12:46:17 +02:00
co-authored by Claude Sonnet 5
parent 97ac0acde9
commit 7fbfee7c36
3 changed files with 74 additions and 2 deletions
@@ -579,6 +579,35 @@ cell in a row still carries a tooltip with the full job detail — label, status
added-at, and either the complete params dump (tomo job) or the numbered step list
plus idempotent flag (command job). Hovering any cell in the row shows it.
### 6.8 Reusing a queued job's settings — "Load into editor"
Motivating case: a tomogram from the queue finished, and later the operator wants
to rerun something similar. Select a single **tomo** job (command jobs have no
`params`, so they're excluded from selection eligibility) in the queue dialog and
click **"Load into editor"** to enter edit mode on the params panel, populated from
that job's saved snapshot instead of the live backend.
**Deliberately not a third write path.** This only calls `_populate_fields()` with
the job's `params` instead of the live values `enter_edit_mode()` would normally
load — nothing is written anywhere by loading. From there, the operator uses the
same two paths every other edit already uses: Submit (writes live, hard-blocked
while busy, §6.1) or "Add to queue" (queue-only, always allowed). No new safety
gating needed because none of the existing gating is bypassed.
**Guards against silently discarding an in-progress edit.** If the panel is already
in edit mode when "Load into editor" is clicked, a confirmation dialog fires first
(naming the job being loaded, if it has a label) — a stray click on a queue row
would otherwise throw away unsaved changes with no warning.
Implementation: `enter_edit_mode()` was refactored to funnel through a new private
`_enter_edit_mode_with(params)` (the actual field-populate/enable/button-swap
logic), so `load_params_into_editor()` is a thin wrapper adding only the
params-source and confirm-before-discard behavior. `TomoQueueDialog` gates the
button's enabled state on "exactly one row selected, and it's a tomo job, and not
in sort mode" — re-evaluated on selection change and on every table refresh (a
selected row's underlying job can change identity if the queue was edited from
elsewhere while it stayed selected).
---
## 7. Registry distribution: publish via global var
@@ -12,8 +12,10 @@ gaps (all fixed, see section 6c below): a confusing duplicate row-number
column, `tomo_parameters()`/the queue table/scilog/the PDF report/the
progress-ring label not showing an active hook at all, and a clarification
that `unregister_at_each_angle_hook()` doesn't clear `at_each_angle_hook`
(confirmed expected, now documented). **Section 6c is new and not yet
clicked through.** Companion docs:
(confirmed expected, now documented). **Sections 6c and 6d are new and not
yet clicked through** — 6c is the fixes above, 6d is the new "Load into
editor" feature (reuse a queued job's settings as a new edit). Companion
docs:
`TOMO_QUEUE_COMMAND_JOBS_PLAN.md` section 6 (the design this implements),
`TOMO_QUEUE_TESTING.md` (Steps 1 & 2, already sim-validated).
@@ -121,6 +123,14 @@ support on top of it:
PDF report additionally include the hook's actual source code when it
is still registered, so what a tomogram did is part of the permanent
record. See section 6c below for what's not yet click-tested.
11. **"Load into editor."** Select a single tomo job in the queue dialog
(command jobs are excluded — no `params`) and click **"Load into
editor"** to enter edit mode on the params panel populated from that
job's saved settings instead of live values. Loading never writes
anything itself — Submit/"Add to queue" from there work exactly as
they already do. Confirms before discarding an in-progress edit.
Disabled outside a valid single-tomo-job selection and during sort
mode. See section 6d below — not yet click-tested.
---
@@ -368,6 +378,32 @@ GUI bug and reporting gaps for the hook feature.
confirm the name still shows (flagged "NOT registered"), but no source
code block appears anywhere.
## 6d. Test plan — new: "Load into editor"
42. Queue a `done` tomo job (run one, or add one via CLI with `status`
hand-edited to `done`). Select it in the queue dialog and confirm
**"Load into editor"** is enabled. Select a command job (or multiple
rows, or nothing) and confirm it's **disabled** in each case.
43. Click **"Load into editor"** with nothing else in progress. Confirm the
params panel enters edit mode (Edit button hides, Submit/"Add to
queue"/Cancel appear) with every field populated from the *job's*
saved values, not the live ones — pick a job whose settings clearly
differ from current live params to make this obvious.
44. With the panel now in edit mode from step 43, change a value, then
click **"Load into editor"** again on a different (or the same) job.
Confirm a **confirmation dialog** appears naming the job before
discarding your edit; Cancel leaves your edit untouched, Yes reloads
from the newly selected job's settings.
45. After loading, click **Cancel** — confirm fields revert to the *live*
values (not back to the loaded job's values) since Cancel always
restores from the backend.
46. After loading, click **"Add to queue"** — confirm a new job is added
to the queue with the loaded (and any further tweaked) settings, and
that live params are untouched. Then repeat ending with **Submit**
instead (beamline idle) — confirm live params update to match.
47. Confirm "Load into editor" is also disabled while **Sort queue…** mode
is active, consistent with the other queue-mutating buttons.
## 7. Known limitations of this first iteration (by design, not bugs)
Worth knowing before you file something as broken:
+7
View File
@@ -358,6 +358,13 @@ flomni.tomo_queue_show()
flomni.tomo_queue_execute() # runs both, in order, on this sample
```
**GUI: reusing an earlier job's settings.** In the ☰ Queue control… dialog, select a
single tomo job (not a command job — those have no scan parameters) and click
**"Load into editor"** to pull its saved settings into the params panel's editor,
as if you'd just clicked Edit. Nothing is written yet — review or tweak the fields,
then Submit (writes live, blocked while the beamline is busy) or "Add to queue" (always
allowed) as usual. If you already had an edit in progress, it asks before discarding it.
#### Command jobs — reconfiguring the beamline between scans
In addition to tomogram jobs, the same queue can hold **command jobs**: an ordered