Skip to content

Extend class-based calibration editing to use CalibrationVariantAssignmentTable (inline variant → class assignment) #680

Description

@bencap

Summary

Integrate CalibrationVariantAssignmentTable into the class-based calibration workflow to provide inline variant → class assignment editing, supplementing (or eventually replacing) the current CSV-only upload.

Background

Class-based calibrations currently assign variants to functional classes via CSV upload only (classes_file in the calibration editor). The CalibrationVariantAssignmentTable component — built as part of the calibration controls feature — supports inline editing and CSV upload, parameterized by assignment options. Wiring it here gives class-based calibrations the same inline editing experience without duplicating UI code.

The assignment options for this use case are dynamic: the class labels come from the calibration's defined functionalClassifications (e.g., ["GoF", "LoF", "Neutral"]).

Proposed Behavior

  • Replace or supplement the existing classes_file upload field in CalibrationFields.vue with CalibrationVariantAssignmentTable, using the calibration's functional class labels as assignmentOptions
  • Inline add/remove and CSV upload both work, consistent with the controls experience
  • Existing CSV-only workflow continues to work (the component already supports CSV upload)

Acceptance Criteria

  • CalibrationVariantAssignmentTable is used for class-based variant assignment in the calibration editor
  • Assignment options are populated from the calibration's defined functional class labels
  • Existing CSV upload functionality is preserved
  • Inline row add/remove works for class assignments
  • Class assignment data is included in the save payload (replacing or alongside classes_file)

Implementation Notes

  • This issue is a follow-up to the calibration controls epic; CalibrationVariantAssignmentTable must be complete before this work begins
  • Consider whether to keep classes_file CSV as a separate code path or unify through the component's CSV upload
  • The backend already accepts classes_file multipart upload; determine if an inline JSON alternative for classes is also needed on the API side

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions