From 863eadb5666f4892d3834c622cd23ba8a392e6c5 Mon Sep 17 00:00:00 2001 From: sabrine33 Date: Wed, 29 Apr 2026 14:05:55 +0100 Subject: [PATCH] deprecate LRC Bank input tube purpose --- .../sample_manifest/sample_tube_behaviour.rb | 2 +- .../sample_manifest/tube_rack_behaviour.rb | 2 +- ...add_deprecated_fields_to_plate_purposes.rb | 7 +++++++ db/schema.rb | 4 +++- .../deprecate_lrc_bank_input_purpose.rake | 20 +++++++++++++++++++ 5 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb create mode 100644 lib/tasks/deprecate_lrc_bank_input_purpose.rake diff --git a/app/models/sample_manifest/sample_tube_behaviour.rb b/app/models/sample_manifest/sample_tube_behaviour.rb index 1ab84b0a9e..6b8f625bde 100644 --- a/app/models/sample_manifest/sample_tube_behaviour.rb +++ b/app/models/sample_manifest/sample_tube_behaviour.rb @@ -20,7 +20,7 @@ def io_samples end def acceptable_purposes - Tube::Purpose.where(target_type: SampleTube) + Tube::Purpose.where(target_type: SampleTube, deprecated: false) end def default_purpose diff --git a/app/models/sample_manifest/tube_rack_behaviour.rb b/app/models/sample_manifest/tube_rack_behaviour.rb index 16bcb1786a..f891f840b8 100644 --- a/app/models/sample_manifest/tube_rack_behaviour.rb +++ b/app/models/sample_manifest/tube_rack_behaviour.rb @@ -20,7 +20,7 @@ def generate end def acceptable_purposes - Tube::Purpose.where(target_type: SampleTube) + Tube::Purpose.where(target_type: SampleTube, deprecated: false) end def acceptable_rack_purposes diff --git a/db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb b/db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb new file mode 100644 index 0000000000..a004ffe4d4 --- /dev/null +++ b/db/migrate/20260429114103_add_deprecated_fields_to_plate_purposes.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true +class AddDeprecatedFieldsToPlatePurposes < ActiveRecord::Migration[8.0] + def change + add_column :plate_purposes, :deprecated, :boolean, default: false, null: false + add_column :plate_purposes, :deprecated_at, :datetime + end +end diff --git a/db/schema.rb b/db/schema.rb index 43fff10f6a..cd96dd237f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[8.0].define(version: 2026_04_24_000000) do +ActiveRecord::Schema[8.0].define(version: 2026_04_29_114103) do create_table "accession_sample_statuses", charset: "utf8mb4", collation: "utf8mb4_unicode_ci", force: :cascade do |t| t.integer "sample_id", null: false t.string "status", null: false @@ -857,6 +857,8 @@ t.integer "source_purpose_id" t.integer "lifespan" t.integer "barcode_prefix_id" + t.boolean "deprecated", default: false, null: false + t.datetime "deprecated_at" t.index ["barcode_prefix_id"], name: "fk_rails_763bed2756" t.index ["target_type"], name: "index_plate_purposes_on_target_type" t.index ["type"], name: "index_plate_purposes_on_type" diff --git a/lib/tasks/deprecate_lrc_bank_input_purpose.rake b/lib/tasks/deprecate_lrc_bank_input_purpose.rake new file mode 100644 index 0000000000..d33f79a19c --- /dev/null +++ b/lib/tasks/deprecate_lrc_bank_input_purpose.rake @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +# # One-time task run to deprecate the LRC Bank Input tube purpose. +# # For reference: Y26-075 + +namespace :LRC_BANK_INPUT do + desc 'Deprecate LRC Bank Input tube purpose' + task deprecate_lrc_bank_input_purpose: :environment do + lrc_bank_input_purpose = Tube::Purpose.find_by(name: 'LRC Bank Input') + + unless lrc_bank_input_purpose + puts "Tube Purpose 'LRC Bank Input' not found. No action taken." + next + end + + lrc_bank_input_purpose.update!(deprecated: true, deprecated_at: DateTime.now) + + puts 'Done: LRC Bank Input tube purpose is been deprecated.' + end +end