diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index ad9f2c47e..f941f2e65 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -84,7 +84,7 @@ module FiltersHelper JSON.parse(session[session_name_for(filter_type)])[filter] || "" end - def owning_organisation_csv_filter_options(user) + def all_owning_organisation_filter_options(user) organisation_options = user.support? ? Organisation.all : ([user.organisation] + user.organisation.stock_owners + user.organisation.absorbed_organisations).uniq [OpenStruct.new(id: "", name: "Select an option")] + organisation_options.map { |org| OpenStruct.new(id: org.id, name: org.name) } end diff --git a/app/models/log.rb b/app/models/log.rb index c095a8276..73f739e83 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -53,6 +53,9 @@ class Log < ApplicationRecord scope :filter_by_organisation, ->(org, _user = nil) { where(owning_organisation: org).or(where(managing_organisation: org)) } scope :filter_by_owning_organisation, ->(owning_organisation, _user = nil) { where(owning_organisation:) } scope :filter_by_managing_organisation, ->(managing_organisation, _user = nil) { where(managing_organisation:) } + scope :filter_by_user_text_search, ->(param, user) { where(assigned_to: user.support? ? User.search_by(param) : User.affiliated_users(user.organisation).search_by(param)) } + scope :filter_by_owning_organisation_text_search, ->(param, _user) { where(owning_organisation: Organisation.search_by(param)) } + scope :filter_by_managing_organisation_text_search, ->(param, _user) { where(managing_organisation: Organisation.search_by(param)) } attr_accessor :skip_update_status, :skip_update_uprn_confirmed, :select_best_address_match, :skip_dpo_validation diff --git a/app/views/filters/owned_by.html.erb b/app/views/filters/owned_by.html.erb index b90643125..271b68de9 100644 --- a/app/views/filters/owned_by.html.erb +++ b/app/views/filters/owned_by.html.erb @@ -9,7 +9,7 @@ type: "select", label: "Owning Organisation", category: "owning_organisation", - options: owning_organisation_csv_filter_options(current_user), + options: all_owning_organisation_filter_options(current_user), caption_text: "Organisation name", }, }, diff --git a/app/views/schemes/_scheme_filters.html.erb b/app/views/schemes/_scheme_filters.html.erb index e53813b18..51687a096 100644 --- a/app/views/schemes/_scheme_filters.html.erb +++ b/app/views/schemes/_scheme_filters.html.erb @@ -35,7 +35,7 @@ type: "select", label: "Owning Organisation", category: "owning_organisation", - options: owning_organisation_filter_options(current_user, @filter_type), + options: all_owning_organisation_filter_options(current_user), }, }, },