From 0ae017d916c43a0f9deb19e79684d3d819fbd7fb Mon Sep 17 00:00:00 2001
From: Gyan Gupta <gyan@cottagelabs.com>
Date: Thu, 19 Dec 2024 12:21:04 +0100
Subject: [PATCH] Fix filtered download issue

---
 hyrax/app/helpers/complex_filter_helper.rb | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/hyrax/app/helpers/complex_filter_helper.rb b/hyrax/app/helpers/complex_filter_helper.rb
index 06a995a7..967b7722 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
-- 
GitLab