From da927e2a217af5f30dd75af27fc726fad9dcbf2f Mon Sep 17 00:00:00 2001 From: David May-Miller Date: Fri, 21 Oct 2022 17:04:14 +0100 Subject: [PATCH] CLDC-1577 Added page asking for local authority in sales log --- .../sales/pages/property_local_authority.rb | 16 +++++++++++++ .../questions/property_local_authority.rb | 17 +++++++++++++ .../property_local_authority_known.rb | 24 +++++++++++++++++++ .../sales/subsections/property_information.rb | 1 + .../20221007133155_add_la_to_sales_log.rb | 8 +++++++ db/schema.rb | 2 ++ 6 files changed, 68 insertions(+) create mode 100644 app/models/form/sales/pages/property_local_authority.rb create mode 100644 app/models/form/sales/questions/property_local_authority.rb create mode 100644 app/models/form/sales/questions/property_local_authority_known.rb create mode 100644 db/migrate/20221007133155_add_la_to_sales_log.rb diff --git a/app/models/form/sales/pages/property_local_authority.rb b/app/models/form/sales/pages/property_local_authority.rb new file mode 100644 index 000000000..1698ace47 --- /dev/null +++ b/app/models/form/sales/pages/property_local_authority.rb @@ -0,0 +1,16 @@ +class Form::Sales::Pages::PropertyLocalAuthority < ::Form::Page + def initialize(id, hsh, subsection) + super + @id = "property_local_authority" + @header = "" + @description = "" + @subsection = subsection + end + + def questions + @questions ||= [ + Form::Sales::Questions::PropertyLocalAuthorityKnown.new(nil, nil, self), + Form::Sales::Questions::PropertyLocalAuthority.new(nil, nil, self), + ] + end +end diff --git a/app/models/form/sales/questions/property_local_authority.rb b/app/models/form/sales/questions/property_local_authority.rb new file mode 100644 index 000000000..c7267c207 --- /dev/null +++ b/app/models/form/sales/questions/property_local_authority.rb @@ -0,0 +1,17 @@ +class Form::Sales::Questions::PropertyLocalAuthority < ::Form::Question + def initialize(id, hsh, page) + super + @id = "la" + @check_answer_label = "Local authority" + @header = "What is the local authority of the property?" + @type = "select" + @answer_options = ANSWER_OPTIONS + @page = page + end + + ANSWER_OPTIONS = { + "test" => "Location", + "test2" => "Other location", + "foo" => "bar", + }.freeze +end diff --git a/app/models/form/sales/questions/property_local_authority_known.rb b/app/models/form/sales/questions/property_local_authority_known.rb new file mode 100644 index 000000000..11ebeca6a --- /dev/null +++ b/app/models/form/sales/questions/property_local_authority_known.rb @@ -0,0 +1,24 @@ +class Form::Sales::Questions::PropertyLocalAuthorityKnown < ::Form::Question + def initialize(id, hsh, page) + super + @id = "la_known" + @check_answer_label = "Local authority known" + @header = "Do you know the local authority of the property?" + @type = "radio" + @answer_options = ANSWER_OPTIONS + @conditional_for = { "la" => [1] } + @hidden_in_check_answers = { + "depends_on" => [ + { + "la_known" => 1, + }, + ], + } + @page = page + end + + ANSWER_OPTIONS = { + "1" => { "value" => "Yes" }, + "0" => { "value" => "No" }, + }.freeze +end diff --git a/app/models/form/sales/subsections/property_information.rb b/app/models/form/sales/subsections/property_information.rb index 61791cb79..5ebe7b581 100644 --- a/app/models/form/sales/subsections/property_information.rb +++ b/app/models/form/sales/subsections/property_information.rb @@ -12,6 +12,7 @@ class Form::Sales::Subsections::PropertyInformation < ::Form::Subsection Form::Sales::Pages::PropertyNumberOfBedrooms.new(nil, nil, self), Form::Sales::Pages::PropertyBuildingType.new(nil, nil, self), Form::Sales::Pages::PropertyUnitType.new(nil, nil, self), + Form::Sales::Pages::PropertyLocalAuthority.new(nil, nil, self), ] end end diff --git a/db/migrate/20221007133155_add_la_to_sales_log.rb b/db/migrate/20221007133155_add_la_to_sales_log.rb new file mode 100644 index 000000000..87675637c --- /dev/null +++ b/db/migrate/20221007133155_add_la_to_sales_log.rb @@ -0,0 +1,8 @@ +class AddLaToSalesLog < ActiveRecord::Migration[7.0] + def change + change_table :sales_logs do |t| + t.column :la, :string + t.column :la_known, :integer + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 80f37a6b0..02c7f3d90 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -367,6 +367,8 @@ ActiveRecord::Schema[7.0].define(version: 2022_10_19_082625) do t.integer "age5_known" t.integer "age6" t.integer "age6_known" + t.string "la" + t.integer "la_known" 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"