From 91b48d2b45415225baff4625d2bdb18a90f6803b Mon Sep 17 00:00:00 2001 From: momo3404 Date: Fri, 6 Feb 2026 15:12:46 -0700 Subject: [PATCH 1/2] Remove unmanaged orgs from combined org search partial - Edit local_search such that it contains an optional parameter that can be set to true to remove unmanaged orgs from the results - Set managed_orgs_only to true in search_combined so the combined org partial only returns managed orgs --- app/services/org_selection/search_service.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/services/org_selection/search_service.rb b/app/services/org_selection/search_service.rb index 67aa023c5d..6f855f9b21 100644 --- a/app/services/org_selection/search_service.rb +++ b/app/services/org_selection/search_service.rb @@ -11,7 +11,7 @@ class << self def search_combined(search_term:) return [] unless search_term.present? && search_term.length > 2 - orgs = local_search(search_term: search_term) + orgs = local_search(search_term: search_term, managed_orgs_only: true) orgs = [] unless orgs.present? # If we got an exact match out of the database then skip the # external searches @@ -65,12 +65,14 @@ def expiry expiration.present? ? expiration : 1.day end - def local_search(search_term:) + def local_search(search_term:, managed_orgs_only: false) return [] unless search_term.present? - Rails.cache.fetch(['org_selection-local', search_term], expires_in: expiry) do - Org.includes(identifiers: :identifier_scheme) - .search(name_without_alias(name: search_term)).to_a + cache_key = ['org_selection-local', search_term, managed_orgs_only] + Rails.cache.fetch(cache_key, expires_in: expiry) do + scope = Org.includes(identifiers: :identifier_scheme) + scope = scope.where(managed: true) if managed_orgs_only + scope.search(name_without_alias(name: search_term)).to_a end end From 9c9feeb0642436f65d5ecc5bfc734755a4ab3735 Mon Sep 17 00:00:00 2001 From: momo3404 Date: Fri, 6 Feb 2026 15:13:31 -0700 Subject: [PATCH 2/2] Edit org selection cache expiration - 1 day was deemed to be too long, so it was changed to 1 hour --- app/services/org_selection/search_service.rb | 2 +- config/initializers/_dmproadmap.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/services/org_selection/search_service.rb b/app/services/org_selection/search_service.rb index 6f855f9b21..0f3a0aa201 100644 --- a/app/services/org_selection/search_service.rb +++ b/app/services/org_selection/search_service.rb @@ -62,7 +62,7 @@ def name_without_alias(name:) def expiry expiration = Rails.configuration.x.cache.org_selection_expiration - expiration.present? ? expiration : 1.day + expiration.present? ? expiration : 1.hour end def local_search(search_term:, managed_orgs_only: false) diff --git a/config/initializers/_dmproadmap.rb b/config/initializers/_dmproadmap.rb index 23b5fcf13c..69ecd4a950 100644 --- a/config/initializers/_dmproadmap.rb +++ b/config/initializers/_dmproadmap.rb @@ -222,7 +222,7 @@ class Application < Rails::Application # ---------------------------------------------------- # # Determines how long to cache results for OrgSelection::SearchService - config.x.cache.org_selection_expiration = 86_400 + config.x.cache.org_selection_expiration = 3600 # Determines how long to cache results for the ResearchProjectsController config.x.cache.research_projects_expiration = 86_400