Class: CherrypickForPulldownPipeline

Inherits:
CherrypickingPipeline show all
Includes:
Pipeline::InboxGroupedBySubmission
Defined in:
app/models/cherrypick_for_pulldown_pipeline.rb

Overview

No longer used directly the CherrypickForPulldownPipeline was previously an automated CherrypickingPipeline which attempted to automatically lay out target plates. However it proved tricky to model all the variations in the layout the users expected, and they stopped using the pipeline. However the FlexibleCherrypickPipeline is still active, and is sub-classed from this.

Direct Known Subclasses

FlexibleCherrypickPipeline

Constant Summary collapse

ALWAYS_SHOW_RELEASE_ACTIONS =
true

Instance Method Summary collapse

Methods included from Pipeline::InboxGroupedBySubmission

included

Methods inherited from CherrypickingPipeline

#robot_verified!

Methods inherited from GenotypingPipeline

#request_actions

Methods included from Pipeline::GroupByParent

#input_labware, #output_labware

Methods inherited from Pipeline

#allow_tag_collision_on_tagging_task?, #completed_request_as_part_of_release_batch, #detach_request_from_batch, #extract_requests_from_input_params, #has_controls?, #input_labware, #is_read_length_consistent_for_batch?, #on_start_batch, #output_labware, #request_actions, #request_types_including_controls, #robot_verified!

Methods included from SharedBehaviour::Named

included

Methods included from Pipeline::BatchValidation

#validation_of_batch, #validation_of_batch_for_completion

Methods included from Uuid::Uuidable

included, #unsaved_uuid!, #uuid

Methods inherited from ApplicationRecord

convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!

Methods included from Warren::BroadcastMessages

#broadcast, included, #queue_associated_for_broadcast, #queue_for_broadcast, #warren

Instance Method Details

#all_requests_from_submissions_selected?(requests) ⇒ Boolean


25
26
27
28
29
# File 'app/models/cherrypick_for_pulldown_pipeline.rb', line 25

def all_requests_from_submissions_selected?(requests)
  request_types, submissions = request_types_and_submissions_for(requests)
  matching_requests = Request.where(request_type_id: request_types, submission_id: submissions).order(:id).pluck(:id)
  requests.map(&:id).sort == matching_requests
end

#post_finish_batch(batch, user) ⇒ Object


11
12
13
# File 'app/models/cherrypick_for_pulldown_pipeline.rb', line 11

def post_finish_batch(batch, user)
  # Nothing, we don't want all the requests to be completed
end

#post_release_batch(batch, _user) ⇒ Object


15
16
17
# File 'app/models/cherrypick_for_pulldown_pipeline.rb', line 15

def post_release_batch(batch, _user)
  batch.release_pending_requests
end

#update_detached_request(batch, request) ⇒ Object


19
20
21
22
23
# File 'app/models/cherrypick_for_pulldown_pipeline.rb', line 19

def update_detached_request(batch, request)
  # We do not need to do any of the default behaviour:
  # 1. The requests should just be detached, not blocked
  # 2. The assets are not removed because they are not considered unused
end