diff --git a/app/models/form/sales/pages/buyer_interview.rb b/app/models/form/sales/pages/buyer_interview.rb new file mode 100644 index 000000000..a781d8a07 --- /dev/null +++ b/app/models/form/sales/pages/buyer_interview.rb @@ -0,0 +1,15 @@ +class Form::Sales::Pages::BuyerInterview < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "buyer_interview" + @header = "" + @description = "" + @subsection = subsection + end + + def questions + @questions ||= [ + Form::Sales::Questions::BuyerInterview.new(nil, nil, self), + ] + end +end diff --git a/app/models/form/sales/questions/buyer_interview.rb b/app/models/form/sales/questions/buyer_interview.rb new file mode 100644 index 000000000..d270d9d33 --- /dev/null +++ b/app/models/form/sales/questions/buyer_interview.rb @@ -0,0 +1,17 @@ +class Form::Sales::Questions::BuyerInterview < ::Form::Question + def initialize(id, hsh, page) + super + @id = "noint" + @check_answer_label = "Buyer interviewed in person?" + @header = "Was the buyer interviewed for any of the answers you will provide on this log?" + @type = "radio" + @hint_text = "You should still try to answer all questions even if the buyer wasn't interviewed in person" + @page = page + @answer_options = ANSWER_OPTIONS + end + + ANSWER_OPTIONS = { + "1" => { "value" => "No" }, + "2" => { "value" => "Yes" }, + }.freeze +end diff --git a/app/models/form/sales/subsections/household_characteristics.rb b/app/models/form/sales/subsections/household_characteristics.rb index 219547067..0cec75ee4 100644 --- a/app/models/form/sales/subsections/household_characteristics.rb +++ b/app/models/form/sales/subsections/household_characteristics.rb @@ -9,6 +9,7 @@ class Form::Sales::Subsections::HouseholdCharacteristics < ::Form::Subsection def pages @pages ||= [ + Form::Sales::Pages::BuyerInterview.new(nil, nil, self), Form::Sales::Pages::Age1.new(nil, nil, self), Form::Sales::Pages::GenderIdentity1.new(nil, nil, self), Form::Sales::Pages::Buyer1LiveInProperty.new(nil, nil, self), diff --git a/db/migrate/20221003092048_add_noint_to_sales_log.rb b/db/migrate/20221003092048_add_noint_to_sales_log.rb new file mode 100644 index 000000000..ab21aead6 --- /dev/null +++ b/db/migrate/20221003092048_add_noint_to_sales_log.rb @@ -0,0 +1,7 @@ +class AddNointToSalesLog < ActiveRecord::Migration[7.0] + def change + change_table :sales_logs, bulk: true do |t| + t.column :noint, :int + end + end +end diff --git a/db/schema.rb b/db/schema.rb index f8dbff468..a3d0a1cc1 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_09_29_125204) do +ActiveRecord::Schema[7.0].define(version: 2022_10_03_092048) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -347,6 +347,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_09_29_125204) do t.integer "age2_known" t.integer "ethnic" t.integer "ethnic_group" + t.integer "noint" 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"