diff --git a/app/views/form/_numeric_question.html.erb b/app/views/form/_numeric_question.html.erb
index 8eecba5ca..709ff3dbe 100644
--- a/app/views/form/_numeric_question.html.erb
+++ b/app/views/form/_numeric_question.html.erb
@@ -3,5 +3,5 @@
label: { text: question["header"], size: "l"},
min: question["min"], max: question["max"], step: question["step"], width: 20
%>
-<%= f.hidden_field :previous_page, value: question_key %>
+<%= f.hidden_field :previous_page, value: page_key %>
<%= f.hidden_field :case_log_id, value: case_log_id %>
diff --git a/app/views/form/_radio_question.html.erb b/app/views/form/_radio_question.html.erb
index 970eba6ef..de6f687b9 100644
--- a/app/views/form/_radio_question.html.erb
+++ b/app/views/form/_radio_question.html.erb
@@ -1,5 +1,5 @@
<% answer_options = question["answer_options"].map { |k, v| OpenStruct.new(id: k.to_i, value: v) } %>
-<%= f.govuk_collection_radio_buttons question_key, answer_options, :id, :value, legend: { text: question["header"], size: "l" } %>
-<%= f.hidden_field :previous_page, value: question_key %>
+<%= f.govuk_collection_radio_buttons question_key, answer_options, :id, :value, legend: { text: question["header"], size: "l" }, hint: { text: question["hint_text"] } %>
+<%= f.hidden_field :previous_page, value: page_key %>
<%= f.hidden_field :case_log_id, value: case_log_id %>
diff --git a/app/views/form/_select_question.html.erb b/app/views/form/_select_question.html.erb
new file mode 100644
index 000000000..b72df6ba9
--- /dev/null
+++ b/app/views/form/_select_question.html.erb
@@ -0,0 +1,5 @@
+<% answer_options = question["answer_options"].map { |k, v| OpenStruct.new(id: k.to_i, value: v) } %>
+
+<%= f.govuk_collection_check_boxes question_key, answer_options, :id, :value, legend: { text: question["header"], size: "l" }, hint: { text: question["hint_text"] } %>
+<%= f.hidden_field :previous_page, value: page_key %>
+<%= f.hidden_field :case_log_id, value: case_log_id %>
diff --git a/app/views/form/_text_question.html.erb b/app/views/form/_text_question.html.erb
index bcb883924..2000ca962 100644
--- a/app/views/form/_text_question.html.erb
+++ b/app/views/form/_text_question.html.erb
@@ -3,5 +3,5 @@
label: { text: question["header"], size: "l"},
width: 20
%>
-<%= f.hidden_field :previous_page, value: question_key %>
+<%= f.hidden_field :previous_page, value: page_key %>
<%= f.hidden_field :case_log_id, value: case_log_id %>
diff --git a/app/views/form/page.html.erb b/app/views/form/page.html.erb
index 973ad6ca9..9a43208d9 100644
--- a/app/views/form/page.html.erb
+++ b/app/views/form/page.html.erb
@@ -6,12 +6,14 @@
<% end %>
<%= turbo_frame_tag "case_log_form", target: "_top" do %>
-
- <%= page_info["header"] %>
-
+ <% if page_info["header"].present? %>
+
+ <%= page_info["header"] %>
+
+ <% end %>
<%= form_with action: '/case_logs', method: "next_page", builder: GOVUKDesignSystemFormBuilder::FormBuilder do |f| %>
<% page_info["questions"].map do |question_key, question| %>
- <%= render partial: "form/#{question["type"]}_question", locals: { case_log_id: case_log_id, question_key: question_key, question: question, f: f } %>
+ <%= render partial: "form/#{question["type"]}_question", locals: { case_log_id: case_log_id, page_key: page_key, question_key: question_key, question: question, f: f } %>
<% end %>
<%= f.govuk_submit "Save and continue" %>
<% end %>
diff --git a/config/forms/2021_2022.json b/config/forms/2021_2022.json
index 5d6c667f1..c803fe307 100644
--- a/config/forms/2021_2022.json
+++ b/config/forms/2021_2022.json
@@ -272,14 +272,129 @@
"household_needs": {
"label": "Household needs",
"pages": {
- "tenant_code_0":{
+ "armed_forces":{
+ "header": "Experience of the UK Armed Forces",
+ "description": "",
+ "questions":{
+ "armed_forces": {
+ "header": "Has the tenant ever served in the UK armed forces?",
+ "hint_text": "",
+ "type": "radio",
+ "answer_options": {
+ "0": "Yes - a regular",
+ "1": "Yes - a reserve",
+ "2": "No",
+ "3": "Prefer not to say"
+ }
+ },
+ "armed_forces_active": {
+ "header": "Are they still serving?",
+ "hint_text": "",
+ "type": "radio",
+ "answer_options": {
+ "0": "Yes",
+ "1": "No - they left up to 5 years ago",
+ "2": "No - they left more than 5 years ago",
+ "3": "Prefer not to say"
+ }
+ },
+ "armed_forces_injured": {
+ "header": "Were they seriously injured or ill as a result of their service?",
+ "hint_text": "",
+ "type": "radio",
+ "answer_options": {
+ "0": "Yes",
+ "1": "No",
+ "2": "Prefer not to say"
+ }
+ },
+ "armed_forces_partner": {
+ "header": "Was the tenant the spouse or civil partner of someone who served in the UK armed forces?",
+ "hint_text": "",
+ "type": "radio",
+ "answer_options": {
+ "0": "Yes - was the spouse or civil partner of a UK Armed Forces member and have separated within the last 2 years",
+ "1": "Yes - was the spouse or civil partner of a UK Armed Forces member who died within the last 2 years",
+ "2": "No",
+ "3": "Prefer not to say"
+ }
+ }
+ }
+ },
+ "medical_conditions": {
"header": "",
"description": "",
"questions":{
- "tenant_code_0": {
- "header": "What is the tenant code?",
+ "medical_conditions": {
+ "header": "Does anyone in the household have a physical condition, mental health condition, or other illness that they expect to last for 12 months or more?",
"hint_text": "",
- "type": "text"
+ "type": "radio",
+ "answer_options": {
+ "0": "Yes",
+ "1": "No",
+ "2": "Do not know",
+ "3": "Prefer not to say"
+ }
+ }
+ }
+ },
+ "pregnancy": {
+ "header": "",
+ "description": "",
+ "questions":{
+ "pregnancy": {
+ "header": "Is anyone in the household pregnant?",
+ "hint_text": "",
+ "type": "radio",
+ "answer_options": {
+ "0": "Yes",
+ "1": "No",
+ "2": "Prefer not to say"
+ }
+ }
+ }
+ },
+ "accessibility_requirements": {
+ "header": "",
+ "description": "",
+ "questions":{
+ "accessibility_requirements": {
+ "header": "Are any of these affected by their condition or illness?",
+ "hint_text": "Select all that apply",
+ "type": "select",
+ "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",
+ "5": "Do not know",
+ "6": "Prefer not to say"
+ }
+ }
+ }
+ },
+ "condition_effects": {
+ "header": "",
+ "description": "",
+ "questions":{
+ "condition_effects": {
+ "header": "Are any of these affected by their condition or illness?",
+ "hint_text": "Select all that apply",
+ "type": "select",
+ "answer_options": {
+ "0": "Vision - such as blindness or partial sight ",
+ "1": "Hearing - such as deafness or partial hearing ",
+ "2": "Mobility - such as walking short distances or climbing stairs ",
+ "3": "Dexterity - such as lifting and carrying objects or using a keyboard ",
+ "4": "Stamina or breathing or fatigue",
+ "5": "Learning or understanding or concentrating",
+ "6": "Memory",
+ "7": "Mental health - such as depression, anxiety, schizophrenia or bipolar",
+ "8": "Socially or behaviourally - such as those associated with autism spectral disorder (ASD) including Aspergers’ or attention deficit hyperactivity disorder (ADHD))",
+ "9": "Other",
+ "10": "Prefer not to say"
+ }
}
}
}
diff --git a/db/migrate/20210924103433_add_additional_field_to_case_log.rb b/db/migrate/20210924103433_add_additional_field_to_case_log.rb
new file mode 100644
index 000000000..d3de4fab1
--- /dev/null
+++ b/db/migrate/20210924103433_add_additional_field_to_case_log.rb
@@ -0,0 +1,15 @@
+class AddAdditionalFieldToCaseLog < ActiveRecord::Migration[6.1]
+ def change
+ change_table :case_logs, bulk: true do |t|
+ t.column :last_settled_home, :string
+ t.column :benefit_cap_spare_room_subsidy, :string
+ t.column :armed_forces_active, :string
+ t.column :armed_forces_injured, :string
+ t.column :armed_forces_partner, :string
+ t.column :medical_conditions, :string
+ t.column :pregnancy, :string
+ t.column :accessibility_requirements, :string
+ t.column :condition_effects, :string
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 4640fa5f1..a1c1b3c7d 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2021_09_24_085939) do
+ActiveRecord::Schema.define(version: 2021_09_24_103433) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -59,6 +59,15 @@ ActiveRecord::Schema.define(version: 2021_09_24_085939) do
t.string "person_8_gender"
t.string "person_8_economic"
t.string "homelessness"
+ t.string "last_settled_home"
+ t.string "benefit_cap_spare_room_subsidy"
+ t.string "armed_forces_active"
+ t.string "armed_forces_injured"
+ t.string "armed_forces_partner"
+ t.string "medical_conditions"
+ t.string "pregnancy"
+ t.string "accessibility_requirements"
+ t.string "condition_effects"
end
end