From 999af26bef4ed18e2cb203de4dd2162fc319bb01 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Fri, 23 Dec 2022 13:49:47 +0000 Subject: [PATCH] feat: add question and page --- app/models/form/sales/pages/armed_forces.rb | 15 +++++++++++++++ .../form/sales/questions/armed_forces.rb | 19 +++++++++++++++++++ .../form/sales/subsections/household_needs.rb | 1 + ...223134818_add_armed_forces_to_sales_log.rb | 7 +++++++ db/schema.rb | 3 ++- 5 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 app/models/form/sales/pages/armed_forces.rb create mode 100644 app/models/form/sales/questions/armed_forces.rb create mode 100644 db/migrate/20221223134818_add_armed_forces_to_sales_log.rb diff --git a/app/models/form/sales/pages/armed_forces.rb b/app/models/form/sales/pages/armed_forces.rb new file mode 100644 index 000000000..8a85d1817 --- /dev/null +++ b/app/models/form/sales/pages/armed_forces.rb @@ -0,0 +1,15 @@ +class Form::Sales::Pages::ArmedForces < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "armed_forces" + @header = "" + @description = "" + @subsection = subsection + end + + def questions + @questions ||= [ + Form::Sales::Questions::ArmedForces.new(nil, nil, self), + ] + end +end \ No newline at end of file diff --git a/app/models/form/sales/questions/armed_forces.rb b/app/models/form/sales/questions/armed_forces.rb new file mode 100644 index 000000000..f7b0abc1e --- /dev/null +++ b/app/models/form/sales/questions/armed_forces.rb @@ -0,0 +1,19 @@ +class Form::Sales::Questions::ArmedForces < ::Form::Question + def initialize(id, hsh, page) + super + @id = "hhregres" + @check_answer_label = "Have any of the buyers ever served as a regular in the UK armed forces?" + @header = "Have any of the buyers ever served as a regular in the UK armed forces?" + @type = "radio" + @hint_text = "A regular is somebody who has served in the Royal Navy, the Royal Marines, the Royal Airforce or Army full time and does not include reserve forces" + @answer_options = ANSWER_OPTIONS + @page = page + end + + ANSWER_OPTIONS = { + "1" => { "value" => "Yes" }, + "7" => { "value" => "No" }, + "3" => { "value" => "Buyer prefers not to say" }, + "8" => { "value" => "Don't know" }, + }.freeze +end \ No newline at end of file diff --git a/app/models/form/sales/subsections/household_needs.rb b/app/models/form/sales/subsections/household_needs.rb index ac60d1713..c33dc7c6e 100644 --- a/app/models/form/sales/subsections/household_needs.rb +++ b/app/models/form/sales/subsections/household_needs.rb @@ -9,6 +9,7 @@ class Form::Sales::Subsections::HouseholdNeeds < ::Form::Subsection def pages @pages ||= [ + Form::Sales::Pages::ArmedForces.new(nil, nil, self), Form::Sales::Pages::HouseholdWheelchair.new(nil, nil, self), Form::Sales::Pages::HouseholdDisability.new(nil, nil, self), ] diff --git a/db/migrate/20221223134818_add_armed_forces_to_sales_log.rb b/db/migrate/20221223134818_add_armed_forces_to_sales_log.rb new file mode 100644 index 000000000..9b8e957aa --- /dev/null +++ b/db/migrate/20221223134818_add_armed_forces_to_sales_log.rb @@ -0,0 +1,7 @@ +class AddArmedForcesToSalesLog < ActiveRecord::Migration[7.0] + def change + change_table :sales_logs, bulk: true do |t| + t.column :hhregres, :integer + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 2d53aab20..870f4ab08 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[7.0].define(version: 2022_12_21_172821) do +ActiveRecord::Schema[7.0].define(version: 2022_12_23_134818) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -416,6 +416,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_12_21_172821) do t.integer "ecstat5" t.integer "ecstat6" t.integer "disabled" + t.integer "hhregres" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id" t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id" t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id"