Module: Submission::LinearRequestGraph

Included in:
LinearSubmission, ReRequestSubmission
Defined in:
app/models/submission/linear_request_graph.rb

Overview

This module can be included where the Order has a linear behaviour, with no branching. Eg. in LinearSubmission

Defined Under Namespace

Classes: SourceData

Instance Method Summary collapse

Instance Method Details

#build_request_graph!(multiplexing_assets = nil) ⇒ Object

Note:

The block behaviour here looks a bit odd, and is a result of the previous behaviour in which the multiplexing assets were yielded directly to the submission. This behaviour can be simplified eventually, but is maintained for the time being to reduce risk of a more significant re-write.

Builds the entire request graph for this Order This is called from Submission#process_submission! which processes each order in turn, multiplexing_assets returned by the first order get passed into subsequent orders.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/models/submission/linear_request_graph.rb', line 22

 do
  # NOTE: The following attribute is not required for Microarray Genotyping.
  # I think this might be broken and suggests that there should be separate classes for project: one for
  # next-gen sequencing that includes this attribute in it's metadata, and one for microarray genotyping
  # that doesn't.
  include ProjectManager::Associations
  include BudgetDivision::Associations

  custom_attribute(:project_cost_code, required: true)
  custom_attribute(:funding_comments)
  custom_attribute(:collaborators)
  custom_attribute(:external_funding_source)
  custom_attribute(:sequencing_budget_cost_centre)
  custom_attribute(:project_funding_model, in: PROJECT_FUNDING_MODELS)
  custom_attribute(:gt_committee_tracking_id)

  before_validation do |record|
    record.project_cost_code = nil if record.project_cost_code.blank?
    record.project_funding_model = nil if record.project_funding_model.blank?
  end
end