Module: Plate::PoolingMetadata

Included in:
Plate
Defined in:
app/models/plate/pooling_metadata.rb

Instance Method Summary collapse

Instance Method Details

#poolsObject

TODO: When API v1 is removed, this could stop returning the pool_id as v2 is only using the location arrays. When that happens, the v2 Resource would need to stop extracting those arrays from this hash. Returns a hash from the submission for the pools to the wells that form that pool on this plate. This is not necessarily efficient but it is correct. Unpooled wells, those without submissions, are completely ignored within the returned result.



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/models/plate/pooling_metadata.rb', line 9

 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