Summary
senate.storage currently assumes every StorageSamplesContainer is grid-managed, with samples assigned to fixed row/column positions. That model works for boxes, racks, and trays, but it does not support some storage cases where samples are stored in containers without slot-level position tracking.
This gap blocks use cases such as:
- bags or bins of samples
- temporary holding containers
- bulk archival containers
- other physical containers where only container membership matters
Problem
At the moment:
- StorageSamplesContainer requires managed positions
- store/recover flows assume a position is always needed
- container sample listings assume a position column always exists
- sample viewlets display a position unconditionally
Expected behavior
We need StorageSamplesContainer to support two modes:
- managed: existing row/column position tracking
- unmanaged: samples are stored in the container without fixed positions
For unmanaged containers:
- storing a sample must not require a position
- row/column grid assumptions must not drive validation
- sample listings and sample viewlets must not display meaningless positions
- an optional physical_capacity can be used to enforce a hard sample count limit
- edit forms should show only the relevant fields for the selected mode
Summary
senate.storage currently assumes every StorageSamplesContainer is grid-managed, with samples assigned to fixed row/column positions. That model works for boxes, racks, and trays, but it does not support some storage cases where samples are stored in containers without slot-level position tracking.
This gap blocks use cases such as:
Problem
At the moment:
Expected behavior
We need StorageSamplesContainer to support two modes:
For unmanaged containers: