exlab_wizard.ui.components.operations_modal#
In-flight operations panel (Frontend Spec §9.5).
A modal reachable from the Sync segment of the bottom status bar (when
any session is suspended in INPUT_REQUIRED) and from a toolbar
[Operations...] button. Backed by GET /api/v1/operations
(Backend §4.6.1).
Functions
Column definitions for the NiceGUI table (Frontend §9.5). |
|
|
Build the operations modal. |
|
Suspended rows first (oldest first), then running, then completed. |
|
Map an operation state to its NiceGUI icon name. |
Classes
|
A single row in the operations panel. |
- class exlab_wizard.ui.components.operations_modal.OperationRow(operation_id, state, started_at, equipment, project, run, plugin=None)[source]#
Bases:
objectA single row in the operations panel.
- Parameters:
- classmethod from_session(session_id, session)[source]#
Map a controller
Sessionto a panel row.Collapses the §4.7 state machine onto the panel’s three buckets:
INPUT_REQUIRED-> suspended (offers Resume/Cancel),DONE-> completed, every other non-terminal state -> running. Sharesproject_identifierwith the/operationsroute so both label rows identically (imported lazily to respect the controller/api import ordering).- Parameters:
- Return type:
- exlab_wizard.ui.components.operations_modal.operation_columns()[source]#
Column definitions for the NiceGUI table (Frontend §9.5).
- exlab_wizard.ui.components.operations_modal.operations_modal(rows, *, on_resume, on_cancel, on_view_log)[source]#
Build the operations modal.
- exlab_wizard.ui.components.operations_modal.sort_rows(rows)[source]#
Suspended rows first (oldest first), then running, then completed.
Per Frontend §9.5: suspended-row default-sort is by Started-at oldest first so the operator clears the longest-pending input first.
- Parameters:
rows (
list[OperationRow])- Return type: