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

    app: frontendTask implementation touches the frontend

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions