Class: UatActions::TestSubmission

Inherits:
UatActions show all
Defined in:
app/uat_actions/uat_actions/test_submission.rb

Overview

Will construct submissions Currently VERY basic

Constant Summary

Constants inherited from UatActions

CATEGORY_LIST

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from UatActions

all, category, find, form_field, form_fields, #form_fields, grouped_and_sorted_uat_actions, id, inherited, permitted, #report, #save, to_partial_path, uat_actions

Class Method Details

.compatible_submission_templatesObject



106
107
108
109
110
111
112
113
114
# File 'app/uat_actions/uat_actions/test_submission.rb', line 106

def self.compatible_submission_templates
  SubmissionTemplate
    .visible
    .each_with_object([]) do |submission_template, compatible|
      next unless submission_template.input_asset_type == 'Well'

      compatible << submission_template.name
    end
end

.defaultUatActions::TestSubmission

Returns a default copy of the UatAction which will be used to fill in the form

Returns:



102
103
104
# File 'app/uat_actions/uat_actions/test_submission.rb', line 102

def self.default
  new(number_of_samples_in_each_well: 1)
end

Instance Method Details

#performBoolean

Generates a plate submission for the given template. A partial submission is possible if the number_of_wells_to_submit form field has been set.

rubocop:todo Metrics/MethodLength

Returns:

  • (Boolean)

    Returns true if the action was successful, false otherwise



122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'app/uat_actions/uat_actions/test_submission.rb', line 122

def perform # rubocop:todo Metrics/AbcSize
  order =
    submission_template.create_with_submission!(
      study: study,
      project: project,
      user: user,
      assets: assets,
      request_options: order_request_options
    )
  report['plate_barcode_0'] = labware.human_barcode
  report['submission_id'] = order.submission.id
  report['library_type'] = order.request_options[:library_type] if order.request_options[:library_type].present?
  report['primer_panel'] = order.request_options[:primer_panel_name] if order.request_options[
    :primer_panel_name
  ].present?
  report['number_of_wells_with_samples'] = labware.wells.with_aliquots.size
  report['number_of_samples_in_each_well'] = labware.wells.with_aliquots.first.aliquots.size
  report['number_of_wells_to_submit'] = assets.size
  order.submission.built!
  true
end