diff --git a/app/models/transfer_request.rb b/app/models/transfer_request.rb index 37bf570f7a..4ab56b2457 100644 --- a/app/models/transfer_request.rb +++ b/app/models/transfer_request.rb @@ -154,9 +154,11 @@ def source_and_target_assets_are_different # @note This is particularly important when transferring out of the initial # {Receptacle} when there may be multiple active {Receptacle#requests_as_source} # @param request [Request] The request which is being processed + # NB. in rare circumstances we transfer out of input plates without submissions for + # aggregation, in which cases outer request is nil, so we also cannot get submission_id def outer_request=(request) @outer_request = request - self.submission_id = request.submission_id + self.submission_id = request&.submission_id end # Sets the {#outer_request} from just a request_id diff --git a/config/default_records/plate_purposes/018_scrna_core_aggregation_purposes.yml b/config/default_records/plate_purposes/018_scrna_core_aggregation_purposes.yml new file mode 100644 index 0000000000..95add726e0 --- /dev/null +++ b/config/default_records/plate_purposes/018_scrna_core_aggregation_purposes.yml @@ -0,0 +1,8 @@ +--- +# scRNA Core aggregation plate purpose definitions +LRC GEM-X 5p CITE Cherrypick: + input_plate: false + stock_plate: false + cherrypickable_target: true + target_type: Plate + size: 96 diff --git a/config/default_records/request_types/015_limber_scrna_core_library_prep_request_types.yml b/config/default_records/request_types/015_limber_scrna_core_library_prep_request_types.yml index 553a19982a..5014a95220 100644 --- a/config/default_records/request_types/015_limber_scrna_core_library_prep_request_types.yml +++ b/config/default_records/request_types/015_limber_scrna_core_library_prep_request_types.yml @@ -11,8 +11,7 @@ limber_scrna_core_library_prep: product_line_name: Short Read acceptable_purposes: - LRC GEM-X 5p Cherrypick - - LRC GEM-X 5p CITE SUP Input - - LRC GEM-X 5p CITE SUP XP + - LRC GEM-X 5p CITE Cherrypick library_types: - Chromium single cell GEM-X 5p v3 GE - Chromium single cell GEM-X 5p v3 BCR diff --git a/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.yml b/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.yml index 4469e29cb6..c63b754c43 100644 --- a/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.yml +++ b/config/default_records/submission_templates/012_scrna_core_library_prep_submission_templates.yml @@ -1,11 +1,5 @@ # Submission templates for the aggregation and library prep parts of the scRNA Core pipeline. --- -Limber-Htp - scRNA Core Aggregation: - submission_class_name: "LinearSubmission" - related_records: - request_type_keys: ["limber_scrna_core_aggregation"] - product_line_name: Short Read - product_catalogue_name: scRNA Core Limber-Htp - scRNA Core Library Prep: submission_class_name: "LinearSubmission" related_records: diff --git a/spec/models/transfer_request_spec.rb b/spec/models/transfer_request_spec.rb index 061885ebb8..dad7b59b73 100644 --- a/spec/models/transfer_request_spec.rb +++ b/spec/models/transfer_request_spec.rb @@ -384,6 +384,26 @@ end end + describe '#outer_request=' do + subject(:transfer_request) { build(:transfer_request, asset: source, target_asset: destination) } + + context 'when request is nil' do + it 'sets submission_id to nil' do + transfer_request.outer_request = nil + expect(transfer_request.submission_id).to be_nil + end + end + + context 'when request is present' do + let(:library_request) { create(:library_request, asset: source) } + + it 'sets submission_id to the request submission_id' do + transfer_request.outer_request = library_request + expect(transfer_request.submission_id).to eq(library_request.submission_id) + end + end + end + context 'when failing a transfer request with downstream assets' do # Labware let(:original_plate) { create(:plate_with_untagged_wells, well_count: 1) }