Class: AutomatedOrder
- Inherits:
-
FlexibleSubmission
- Object
- ActiveRecord::Base
- ApplicationRecord
- Order
- FlexibleSubmission
- AutomatedOrder
- Defined in:
- app/models/automated_order.rb
Overview
An automated order is created by an external application, such as Limber. Retrieval of studies/projects is surprisingly expensive, and isn't relevant for cross-project/study stuff anyway. Rather than COMPLETELY disabling validation of study/project presence, we use the current permissions for cross study/project-stuff, and auto populate the field elsewhere. If someone manages to somehow mix multiple assets in different single studies, we still throw validation errors
Constant Summary
Constants inherited from Order
Order::AssetTypeError, Order::DEFAULT_ASSET_INPUT_METHODS
Constants included from Submission::ProjectValidation
Submission::ProjectValidation::Error
Instance Attribute Summary
Attributes inherited from Order
#asset_input_methods, #info_differential, #input_field_infos, #request_type_ids_list
Instance Method Summary collapse
-
#autodetection_default ⇒ Object
When automating submission creation, it is really useful if we can auto-detect studies and projects based on their aliquots.
Methods inherited from FlexibleSubmission
#request_type_ids, #request_type_ids=, #request_type_multiplier
Methods included from Submission::Crossable
#cross_compatible?, #cross_project_allowed, #cross_study_allowed
Methods included from Submission::FlexibleRequestGraph::OrderMethods
Methods inherited from Order
#add_comment, #all_assets, #all_samples, #asset_uuids, #assets=, #building?, #building_submission?, #calculated_request_metadata_by_request_key, #collect_gigabases_expected?, #complete_building, #create_request_of_type!, #cross_compatible?, #cross_project_allowed, #cross_study_allowed, #duplicates_within, #first_request_type, #friendly_name, #generate_broadcast_event, #json_root, #multiplexed?, #multiplier_for, #next_request_type_id, #not_ready_samples, #on_delete_destroy_submission, #project_not_set, render_class, #request_types_list, #samples, #sequencing_order?, #study_is_active, #subject_type
Methods included from Submission::RequestOptionsBehaviour
Methods included from Submission::ProjectValidation
#checking_project?, included, #save_after_unmarshalling, #submittable?, #validating?
Methods included from Submission::AssetGroupBehaviour
#complete_building_asset_group, included
Methods included from Uuid::Uuidable
included, #unsaved_uuid!, #uuid
Methods inherited from ApplicationRecord
alias_association, convert_labware_to_receptacle_for, find_by_id_or_name, find_by_id_or_name!
Methods included from Squishify
Instance Method Details
#autodetection_default ⇒ Object
When automating submission creation, it is really useful if we can auto-detect studies and projects based on their aliquots. For automated orders this is enabled by default.
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/models/automated_order.rb', line 14 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 |