diff --git a/hyrax/app/helpers/complex_filter_helper.rb b/hyrax/app/helpers/complex_filter_helper.rb index 06a995a7aa54e34247a60b657c5cf35fcc3d3173..967b7722fea74625fe39b2bf4521d85f3325f7dc 100644 --- a/hyrax/app/helpers/complex_filter_helper.rb +++ b/hyrax/app/helpers/complex_filter_helper.rb @@ -1,8 +1,9 @@ module ComplexFilterHelper def fetch_crc_filter_params(params) facet_filters = params[:f].present? ? params[:f].slice(*::CrcDataset::CRC_FILTER_FACET_FIELDS).permit!.to_h : {} - range_filters = (params[:range].present? && params[:range][:year_recorded_sim].present?) ? params[:range].slice(:year_recorded_sim).permit!.to_h : {} - search_params = facet_filters.merge(range_filters) + year_range_filters = (params[:range].present? && params[:range][:year_recorded_sim].present?) ? params[:range].slice(:year_recorded_sim).permit!.to_h : {} + age_range_filters = (params[:range].present? && params[:range][:complex_subject_age_itsim].present?) ? params[:range].slice(:complex_subject_age_itsim).permit!.to_h : {} + search_params = facet_filters.merge(year_range_filters).merge(age_range_filters) end def subject_field_mappings @@ -46,7 +47,7 @@ module ComplexFilterHelper end end - def filtered_subjects(subject_query, session_query, modality_query) + def filtered_subjects(subject_query = nil, session_query = nil , modality_query = nil) complex_subjects = ComplexSubject.includes(complex_sessions: :complex_modalities) if modality_query.present? @@ -110,6 +111,13 @@ module ComplexFilterHelper end_date = Date.parse("#{year_range['end']}-12-31") query["session_date_recorded"] = begin_date..end_date end + elsif key == "complex_subject_age_itsim" + age_range = search_params[key] + if age_range.is_a?(Hash) && age_range.key?("begin") && age_range.key?("end") + query["subject_age"] = age_range['begin']..age_range['end'] + else + query[value] = search_params[key] + end else query[value] = search_params[key] end @@ -126,7 +134,8 @@ module ComplexFilterHelper facet_filters = search_params[:f] || {} range_filters = (search_params[:range].present? && search_params[:range][:year_recorded_sim].present?) ? search_params[:range].slice(:year_recorded_sim) : {} - search_params = facet_filters.merge(range_filters) + age_range_filters = (params[:range].present? && params[:range][:complex_subject_age_itsim].present?) ? params[:range].slice(:complex_subject_age_itsim).permit!.to_h : {} + search_params = facet_filters.merge(range_filters).merge(age_range_filters) return has_any_search_params?(field_mappings, search_params) end