diff --git a/app/controllers/templates_archived_submissions_controller.rb b/app/controllers/templates_archived_submissions_controller.rb index 85d551a4..e0bdca25 100644 --- a/app/controllers/templates_archived_submissions_controller.rb +++ b/app/controllers/templates_archived_submissions_controller.rb @@ -6,7 +6,7 @@ class TemplatesArchivedSubmissionsController < ApplicationController def index @submissions = @submissions.where.not(archived_at: nil) - @submissions = Submissions.search(@submissions, params[:q]) + @submissions = Submissions.search(@submissions, params[:q], search_values: true) @pagy, @submissions = pagy(@submissions.preload(:submitters).order(id: :desc)) rescue ActiveRecord::RecordNotFound diff --git a/app/controllers/templates_controller.rb b/app/controllers/templates_controller.rb index 794b4c6a..032ee4e1 100644 --- a/app/controllers/templates_controller.rb +++ b/app/controllers/templates_controller.rb @@ -8,7 +8,7 @@ class TemplatesController < ApplicationController def show submissions = @template.submissions.accessible_by(current_ability) submissions = submissions.active if @template.archived_at.blank? - submissions = Submissions.search(submissions, params[:q]) + submissions = Submissions.search(submissions, params[:q], search_values: true) @base_submissions = submissions diff --git a/lib/submissions.rb b/lib/submissions.rb index 3a1de804..c238e834 100644 --- a/lib/submissions.rb +++ b/lib/submissions.rb @@ -7,7 +7,7 @@ module Submissions module_function - def search(submissions, keyword) + def search(submissions, keyword, search_values: false) return submissions if keyword.blank? term = "%#{keyword.downcase}%" @@ -18,6 +18,8 @@ module Submissions .or(arel_table[:phone].matches(term)) .or(arel_table[:name].lower.matches(term)) + arel = arel.or(Arel::Table.new(:submitters)[:values].matches(term)) if search_values + submissions.joins(:submitters).where(arel).distinct end