Browse Source

Get statuses from case_log

pull/449/head
Kat 3 years ago
parent
commit
b476e41c21
  1. 2
      app/controllers/case_logs_controller.rb
  2. 6
      app/helpers/filters_helper.rb
  3. 2
      app/views/case_logs/_log_filters.erb
  4. 4
      spec/requests/case_logs_controller_spec.rb

2
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

6
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

2
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 %>
<div class="govuk-checkboxes govuk-checkboxes--small" data-module="govuk-checkboxes">
<% 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 },

4
spec/requests/case_logs_controller_spec.rb

@ -189,12 +189,12 @@ RSpec.describe CaseLogsController, type: :request do
in_progress_case_row_log = "<a class=\"govuk-link\" href=\"/logs/#{in_progress_case_log.id}\">#{in_progress_case_log.id}</a>"
completed_case_row_log = "<a class=\"govuk-link\" href=\"/logs/#{completed_case_log.id}\">#{completed_case_log.id}</a>"
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)

Loading…
Cancel
Save