diff --git a/app/controllers/isa_assays_controller.rb b/app/controllers/isa_assays_controller.rb index 8bdb451a7d..0a44ce8d18 100644 --- a/app/controllers/isa_assays_controller.rb +++ b/app/controllers/isa_assays_controller.rb @@ -7,9 +7,9 @@ class IsaAssaysController < ApplicationController def new if params[:is_assay_stream] - @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.find_by(key: 'ASS').id } }) + @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.for_type('assay_stream').id } }) else - @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.find_by(key: 'EXP').id } }) + @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.for_type('experimental').id } }) end end @@ -141,9 +141,9 @@ def set_up_instance_variable def find_requested_item if params[:is_assay_stream] - @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.find_by(key: 'ASS').id } }) + @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.for_type('assay_stream').id } }) else - @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.find_by(key: 'EXP').id } }) + @isa_assay = IsaAssay.new({ assay: { assay_class_id: AssayClass.for_type('experimental').id } }) end @isa_assay.populate(params[:id]) diff --git a/app/models/assay_class.rb b/app/models/assay_class.rb index bc2a45728f..37a148de50 100644 --- a/app/models/assay_class.rb +++ b/app/models/assay_class.rb @@ -2,8 +2,8 @@ class AssayClass < ApplicationRecord # this returns an instance of AssayClass according to one of the types "experimental", "modelling" or "assay_stream" # if there is not a match nil is returned def self.for_type(type) - keys = { "experimental": 'EXP', "modelling": 'MODEL', 'assay_stream': 'ASS' } - AssayClass.find_by(key: keys[type]) + keys = { "experimental": 'EXP', "modelling": 'MODEL', "assay_stream": 'ASS' } + AssayClass.find_by(key: keys[type.to_sym]) end def self.experimental @@ -15,7 +15,7 @@ def self.modelling end def self.assay_stream - for_type('assay_stream') + for_type('assaystream') end def is_modelling? diff --git a/app/views/isa_assays/_form.html.erb b/app/views/isa_assays/_form.html.erb index 13a77cced1..13460bd080 100644 --- a/app/views/isa_assays/_form.html.erb +++ b/app/views/isa_assays/_form.html.erb @@ -7,11 +7,11 @@ if @isa_assay.assay.new_record? if params[:is_assay_stream] assay_position = 0 - assay_class_id = AssayClass.find_by(key: 'ASS')&.id + assay_class_id = AssayClass.for_type('assay_stream').id is_assay_stream = true else assay_position = params[:source_assay_id].nil? ? 1 : source_assay.position + 1 - assay_class_id = AssayClass.find_by(key: 'EXP')&.id + assay_class_id = AssayClass.for_type('experimental').id is_assay_stream = false end else diff --git a/config/default_data/assay_classes.yml b/config/default_data/assay_classes.yml index 94a08a2a99..56c2c6790e 100644 --- a/config/default_data/assay_classes.yml +++ b/config/default_data/assay_classes.yml @@ -6,4 +6,9 @@ experimental_assay_class: modelling_assay_class: id: 2 title: <%= I18n.t('assays.modelling_analysis') %> - key: MODEL \ No newline at end of file + key: MODEL + +assay_stream_class: + id: 3 + title: <%= I18n.t('assays.assay_stream') %> + key: ASS diff --git a/config/locales/en.yml b/config/locales/en.yml index ced43e1a21..8880ff79e8 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -16,6 +16,7 @@ en: assay: "Assay" experimental_assay: "Experimental assay" modelling_analysis: "Modelling analysis" + assay_stream: "Assay Stream" isa_study: "ISA Study" study_design: "Study Design" diff --git a/db/seeds/017_minimal_starter_isa_templates.seeds.rb b/db/seeds/017_minimal_starter_isa_templates.seeds.rb index 2b1929fbfb..e78e477916 100644 --- a/db/seeds/017_minimal_starter_isa_templates.seeds.rb +++ b/db/seeds/017_minimal_starter_isa_templates.seeds.rb @@ -200,10 +200,3 @@ end puts 'Seeded minimal templates for organizing ISA JSON compliant experiments.' - -disable_authorization_checks do - AssayClass.find_or_create_by(title: 'Assay Stream', key: 'ASS', - description: 'Special type of class that is user in Single Page, specifying this is a container for a stream of assays') -end - -puts 'Seeded Extra Assay Class' diff --git a/lib/tasks/seek_upgrades.rake b/lib/tasks/seek_upgrades.rake index 6497f980b5..38990a2e7d 100644 --- a/lib/tasks/seek_upgrades.rake +++ b/lib/tasks/seek_upgrades.rake @@ -15,7 +15,7 @@ namespace :seek do rename_registered_sample_multiple_attribute_type remove_ontology_attribute_type db:seed:007_sample_attribute_types - db:seed:017_minimal_starter_isa_templates + db:seed:001_create_controlled_vocabs recognise_isa_json_compliant_items ] diff --git a/test/fixtures/assay_classes.yml b/test/fixtures/assay_classes.yml index fc730abd78..4a90f2e308 100644 --- a/test/fixtures/assay_classes.yml +++ b/test/fixtures/assay_classes.yml @@ -7,5 +7,5 @@ modelling_assay_class: key: MODEL assay_stream_class: - title: 'Assay Stream' - key: 'ASS' + title: <%= I18n.t('assays.assay_stream') %> + key: ASS