app/views/shared/metadata/edit/_study.html.erb
<%# NOTE[xxx]: Kind of a hack because we need 'study[study_metadata_attributes][X]' -%>
<%= fields_for(study) do |form| %>
<%= form.fields_for(:study_metadata, builder: Metadata::FormBuilder) do |metadata_fields| %>
<%= metadata_fields.select_by_association(:faculty_sponsor)%>
<%= metadata_fields.select_by_association(:program)%>
<%= metadata_fields.text_field(:number_of_gigabases_per_sample) %>
<%= metadata_fields.text_field(:prelim_id) %>
<%= metadata_fields.select_by_association(:reference_genome, {}, { class: 'select2' }) %>
<% metadata_fields.with_options(grouping: 'ENA requirement') do |group| %>
<%= group.text_field(:study_study_title) %>
<%= group.select_by_association(:study_type)%>
<%= group.text_area(:study_description) %>
<%= group.text_area(:study_abstract) %>
<%= group.radio_select(:study_sra_hold, Study::STUDY_SRA_HOLDS) %>
<% end %>
<%= metadata_fields.radio_select(:contains_human_dna, Study::YES_OR_NO) %>
<%= metadata_fields.radio_select(:contaminated_human_dna, Study::YES_OR_NO) %>
<%= metadata_fields.radio_select(:commercially_available, Study::YES_OR_NO) %>
<%= metadata_fields.radio_select(:remove_x_and_autosomes, Study::YES_OR_NO) %>
<%= metadata_fields.check_box(:separate_y_chromosome_data) %>
<%= metadata_fields.text_field(:study_project_id, grouping: 'SRA') %>
<%= metadata_fields.text_field(:study_ebi_accession_number, grouping: 'SRA AN') %>
<%= metadata_fields.text_field(:study_name_abbreviation) %>
<%= metadata_fields.check_box(:bam) %>
<% metadata_fields.with_options(grouping: 'Data Release') do |group| %>
<%= metadata_fields.text_field(:data_access_group) %>
<%= group.select_by_association(:data_release_study_type)%>
<%= help_link 'Introduction to Accessioning', 'Accessioing', class: 'offset-md-2' %>
<% strategies = Study::DATA_RELEASE_STRATEGIES.map { |s| [t(s.downcase.gsub(' ','_'),scope:'metadata.study.metadata.data_release_strategy.values'),s ] } %>
<%= group.radio_select(:data_release_strategy, strategies) %>
<% metadata_fields.related_fields(to: :data_release_strategy, when: Study::DATA_RELEASE_STRATEGY_MANAGED) do %>
<%= group.radio_select(:data_release_standard_agreement, Study::YES_OR_NO) %>
<% metadata_fields.related_fields(to: :data_release_standard_agreement, when: Study::NO) do %>
<%= group.document_field(:data_release_non_standard_agreement) %>
<% end %>
<%= metadata_fields.text_field(:dac_policy_title) %>
<%= metadata_fields.text_field(:dac_policy) %>
<%= metadata_fields.text_field(:ega_dac_accession_number) %>
<%= metadata_fields.text_field(:ega_policy_accession_number) %>
<%= metadata_fields.text_field(:array_express_accession_number) if study.for_array_express? %>
<% end %>
<%= metadata_fields.text_field :hmdmc_approval_number %>
<%= metadata_fields.select(:data_release_timing, Study::DATA_RELEASE_TIMINGS + [ Study::DATA_RELEASE_TIMING_NEVER ]) %>
<%
metadata_fields.change_select_options_for(:data_release_timing, when: :data_release_strategy, values: {
Study::DATA_RELEASE_STRATEGY_NOT_APPLICABLE => Study::DATA_RELEASE_TIMING_NEVER,
(Study::DATA_RELEASE_STRATEGIES-[Study::DATA_RELEASE_STRATEGY_NOT_APPLICABLE]) => Study::DATA_RELEASE_TIMINGS
})
%>
<% metadata_fields.related_fields(to: :data_release_strategy, when: Study::DATA_RELEASE_STRATEGY_NOT_APPLICABLE) do %>
<%= group.select(:data_release_prevention_reason, Study::DATA_RELEASE_PREVENTION_REASONS) %>
<%= group.radio_select(:data_release_prevention_approval, Study::YES_OR_NO) %>
<%= group.text_area(:data_release_prevention_reason_comment) %>
<% end %>
<% metadata_fields.related_fields(to: :data_release_strategy, in: Study::DATA_RELEASE_STRATEGIES, not: Study::DATA_RELEASE_STRATEGY_NOT_APPLICABLE) do %>
<% metadata_fields.related_fields(to: :data_release_timing, when: Study::DATA_RELEASE_TIMING_DELAYED) do %>
<%= group.select(:data_release_delay_reason, Study::DATA_RELEASE_DELAY_REASONS_STANDARD) %>
<%
group.change_select_options_for(:data_release_delay_reason, when: :data_release_study_type_id, values: {
DataReleaseStudyType.assay_types.map(&:id) => [ '' ] + Study::DATA_RELEASE_DELAY_REASONS_ASSAY,
DataReleaseStudyType.non_assay_types.map(&:id) => [ '' ] + Study::DATA_RELEASE_DELAY_REASONS_STANDARD
})
%>
<%= group.select(:data_release_delay_period, Study::DATA_RELEASE_DELAY_PERIODS) %>
<% metadata_fields.related_fields(to: :data_release_delay_period, in: Study::DATA_RELEASE_DELAY_PERIODS) do %>
<%= group.radio_select(:data_release_delay_approval, Study::YES_OR_NO) %>
<% end %>
<% metadata_fields.related_fields(to: :data_release_delay_reason, when: Study::DATA_RELEASE_DELAY_FOR_OTHER) do %>
<%= group.text_area(:data_release_delay_other_comment) %>
<% metadata_fields.related_fields(to: :data_release_delay_period, in: Study::DATA_RELEASE_DELAY_PERIODS) do %>
<%= group.text_area(:data_release_delay_reason_comment) %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
<%= metadata_fields.text_field(:s3_email_list) %>
<%= metadata_fields.select(:data_deletion_period, ['','3 months']) %>
<%= metadata_fields.text_field(:contaminated_human_data_access_group) %>
<% metadata_fields.finalize_related_fields %>
<% end %>
<% end %>