diff --git a/app/controllers/case_logs_controller.rb b/app/controllers/case_logs_controller.rb index 0830c0d4d..458f4e217 100644 --- a/app/controllers/case_logs_controller.rb +++ b/app/controllers/case_logs_controller.rb @@ -79,7 +79,7 @@ class CaseLogsController < ApplicationController end def filter - session[:case_logs_filters] = { status: JSON.parse(params[:status]) }.to_json + session[:case_logs_filters] = { status: params[:status] }.to_json redirect_back(fallback_location: root_path) end diff --git a/app/helpers/filters_helper.rb b/app/helpers/filters_helper.rb index 89c48740c..aaee74fb6 100644 --- a/app/helpers/filters_helper.rb +++ b/app/helpers/filters_helper.rb @@ -5,4 +5,10 @@ module FiltersHelper selected_filters = JSON.parse(session[:case_logs_filters]) selected_filters["status"].present? && selected_filters["status"].include?(filter.to_s) end + + def status_filters + statuses = {} + CaseLog.statuses.keys.map { |status| statuses[status] = status.humanize } + statuses + end end diff --git a/app/views/case_logs/_log_filters.erb b/app/views/case_logs/_log_filters.erb index a564107c0..552e0f8a8 100644 --- a/app/views/case_logs/_log_filters.erb +++ b/app/views/case_logs/_log_filters.erb @@ -15,7 +15,7 @@ <%= form_with url: "/logs/filter", html: { method: :post }, builder: GOVUKDesignSystemFormBuilder::FormBuilder do |f| %> <%= f.govuk_check_boxes_fieldset :status, legend: { text: "Status", size: "s"} do %>
- <% statuses = {in_progress: "In progress", submitted: "Completed", not_started: "Not started"} %> + <% statuses = status_filters %> <% statuses.map do |key, option| %> <%= f.govuk_check_box "status", "#{key}", label: { text: option }, diff --git a/spec/requests/case_logs_controller_spec.rb b/spec/requests/case_logs_controller_spec.rb index c26c764f4..f111b0e76 100644 --- a/spec/requests/case_logs_controller_spec.rb +++ b/spec/requests/case_logs_controller_spec.rb @@ -189,12 +189,12 @@ RSpec.describe CaseLogsController, type: :request do in_progress_case_row_log = "#{in_progress_case_log.id}" completed_case_row_log = "#{completed_case_log.id}" - post "/logs/filter", headers: headers, params: { status: %w[in_progress completed].to_json } + post "/logs/filter", headers: headers, params: { status: %w[in_progress completed] } get "/logs", headers: headers, params: {} expect(CGI.unescape_html(response.body)).to include(in_progress_case_row_log) expect(CGI.unescape_html(response.body)).to include(completed_case_row_log) - post "/logs/filter", headers: headers, params: { status: %w[in_progress].to_json } + post "/logs/filter", headers: headers, params: { status: %w[in_progress] } get "/logs", headers: headers, params: {} expect(CGI.unescape_html(response.body)).to include(in_progress_case_row_log) expect(CGI.unescape_html(response.body)).not_to include(completed_case_row_log)