Browse Source

Save keys for checkboxes instead of labels

pull/40/head
Kat 4 years ago
parent
commit
e735f9e652
  1. 4
      app/controllers/case_logs_controller.rb
  2. 2
      app/views/form/_checkbox_question.html.erb
  3. 14
      config/forms/2021_2022.json
  4. 19
      spec/controllers/case_logs_controller_spec.rb

4
app/controllers/case_logs_controller.rb

@ -42,8 +42,8 @@ class CaseLogsController < ApplicationController
checkbox_questions = questions_for_page.select { |_title, question| question["type"] == "checkbox" }
checkbox_questions.each do |title, question|
valid_answer_options = question["answer_options"].reject { |key, _value| key.match?(/divider/) }
valid_answer_options.each do |_key, value|
checked_questions["#{title}_#{value.parameterize(separator: '_')}"] = case_log_params[title].include?(value) ? true : false
valid_answer_options.each do |value, _label|
checked_questions[value] = case_log_params[title].include?(value) ? true : false
end
end
checked_questions

2
app/views/form/_checkbox_question.html.erb

@ -6,7 +6,7 @@
<% if key.starts_with?("divider") %>
<%= f.govuk_check_box_divider %>
<% else %>
<%= f.govuk_check_box question_key, val, label: { text: val } %>
<%= f.govuk_check_box question_key, key, label: { text: val } %>
<% end %>
<% end %>
<% end %>

14
config/forms/2021_2022.json

@ -381,15 +381,15 @@
"type": "checkbox",
"check_answer_label": "Disability requirements",
"answer_options": {
"0": "Fully wheelchair accessible housing",
"1": "Wheelchair access to essential rooms",
"2": "Level access housing",
"3": "Other disability requirements",
"4": "No disability requirements",
"accessibility_requirements_fully_wheelchair_accessible_housing": "Fully wheelchair accessible housing",
"accessibility_requirements_wheelchair_access_to_essential_rooms": "Wheelchair access to essential rooms",
"accessibility_requirements_level_access_housing": "Level access housing",
"accessibility_requirements_other_disability_requirements": "Other disability requirements",
"accessibility_requirements_no_disability_requirements": "No disability requirements",
"divider_a": true,
"5": "Do not know",
"accessibility_requirements_do_not_know": "Do not know",
"divider_b": true,
"6": "Prefer not to say"
"accessibility_requirements_prefer_not_to_say": "Prefer not to say"
}
}
}

19
spec/controllers/case_logs_controller_spec.rb

@ -47,12 +47,16 @@ RSpec.describe CaseLogsController, type: :controller do
describe "submit_form" do
let!(:case_log) { FactoryBot.create(:case_log) }
let(:id) { case_log.id }
let(:case_log_to_submit) do
{ "accessibility_requirements" =>
%w[ accessibility_requirements_fully_wheelchair_accessible_housing
accessibility_requirements_wheelchair_access_to_essential_rooms
accessibility_requirements_level_access_housing],
"previous_page" => "accessibility_requirements" }
end
it "sets checked items to true" do
case_log_to_submit = { "accessibility_requirements" =>
["Fully wheelchair accessible housing", "Wheelchair access to essential rooms", "Level access housing"],
"previous_page" => "accessibility_requirements" }
post :submit_form, params: { id: id, case_log: case_log_to_submit }
get :submit_form, params: { id: id, case_log: case_log_to_submit }
CaseLog.find(id)
expect(CaseLog.find(id)["accessibility_requirements_fully_wheelchair_accessible_housing"]).to eq(true)
@ -61,17 +65,14 @@ RSpec.describe CaseLogsController, type: :controller do
end
it "sets previously submitted items to false when resubmitted with new values" do
case_log_to_submit = { "accessibility_requirements" =>
["Fully wheelchair accessible housing", "Wheelchair access to essential rooms", "Level access housing"],
"previous_page" => "accessibility_requirements" }
post :submit_form, params: { id: id, case_log: case_log_to_submit }
CaseLog.find(id)
new_case_log_to_submit = { "accessibility_requirements" =>
["Level access housing"],
%w[accessibility_requirements_level_access_housing],
"previous_page" => "accessibility_requirements" }
post :submit_form, params: { id: id, case_log: new_case_log_to_submit }
get :submit_form, params: { id: id, case_log: new_case_log_to_submit }
CaseLog.find(id)
expect(CaseLog.find(id)["accessibility_requirements_fully_wheelchair_accessible_housing"]).to eq(false)

Loading…
Cancel
Save