diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 0a2868c3b..db0e25069 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -50,7 +50,7 @@ class CaseLog < ApplicationRecord } AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at].freeze - OPTIONAL_FIELDS = %w[postcode_known la_known first_time_property_let_as_social_housing tenant_code propcode].freeze + OPTIONAL_FIELDS = %w[postcode_known previous_la_known first_time_property_let_as_social_housing tenant_code propcode].freeze RENT_TYPE_MAPPING = { 0 => 1, 1 => 2, 2 => 2, 3 => 3, 4 => 3, 5 => 3 }.freeze RENT_TYPE_MAPPING_LABELS = { 1 => "Social Rent", 2 => "Affordable Rent", 3 => "Intermediate Rent" }.freeze HAS_BENEFITS_OPTIONS = [1, 6, 8, 7].freeze @@ -180,11 +180,6 @@ class CaseLog < ApplicationRecord previous_postcode_known == 1 end - def la_known? - # 1: Yes - la_known == 1 - end - def previous_la_known? # 1: Yes previous_la_known == 1 @@ -495,7 +490,7 @@ private end def reset_location_fields! - reset_location(is_la_inferred, "la", "is_la_inferred", "postcode_full", la_known) + reset_location(is_la_inferred, "la", "is_la_inferred", "postcode_full", 1) end def reset_previous_location_fields! diff --git a/app/models/form.rb b/app/models/form.rb index eb6456b9b..c885db64d 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -119,7 +119,7 @@ class Form def invalidated_page_questions(case_log) # we're already treating address fields as a special case and reset their values upon saving a case_log - address_questions = %w[postcode_known la_known la previous_postcode_known previous_la_known prevloc postcode_full ppostcode_full] + address_questions = %w[postcode_known la previous_postcode_known previous_la_known prevloc postcode_full ppostcode_full] invalidated_pages(case_log).flat_map(&:questions).reject { |q| address_questions.include?(q.id) } || [] end diff --git a/app/models/form/question.rb b/app/models/form/question.rb index ca1eef09a..80615855e 100644 --- a/app/models/form/question.rb +++ b/app/models/form/question.rb @@ -238,7 +238,6 @@ private renewal: [1], postcode_known: [1], previous_postcode_known: [1], - la_known: [1], previous_la_known: [1], first_time_property_let_as_social_housing: [1], wchair: [1], @@ -262,8 +261,7 @@ private RADIO_NO_VALUE = { renewal: [0], postcode_known: [0], - previous_postcode_known: [0], - la_known: [0], + previous_postcode_known: [0],, previous_la_known: [0], first_time_property_let_as_social_housing: [0], wchair: [0], diff --git a/app/models/validations/local_authority_validations.rb b/app/models/validations/local_authority_validations.rb index e02394fe9..b46b2599a 100644 --- a/app/models/validations/local_authority_validations.rb +++ b/app/models/validations/local_authority_validations.rb @@ -10,10 +10,6 @@ module Validations::LocalAuthorityValidations end def validate_la(record) - if record.la_known? && record.la.blank? - record.errors.add :la, I18n.t("validations.property.la.la_known") - end - if record.owning_organisation && record.owning_organisation.local_authorities.present? && record.la && !record.owning_organisation.local_authorities.include?(record.la) la_name = record.form.get_question("la", record).label_from_value(record.la) diff --git a/app/services/imports/case_logs_import_service.rb b/app/services/imports/case_logs_import_service.rb index 7a9799078..7ce66d8df 100644 --- a/app/services/imports/case_logs_import_service.rb +++ b/app/services/imports/case_logs_import_service.rb @@ -149,7 +149,6 @@ module Imports # Required for our form invalidated questions (not present in import) attributes["previous_la_known"] = 1 # Defaulting to Yes (Required) - attributes["la_known"] = 1 # Defaulting to Yes (Required) attributes["is_la_inferred"] = false # Always keep the given LA attributes["first_time_property_let_as_social_housing"] = first_time_let(attributes["rsnvac"]) attributes["declaration"] = declaration(xml_doc) diff --git a/config/forms/2021_2022.json b/config/forms/2021_2022.json index 0b6da1ede..d725d0858 100644 --- a/config/forms/2021_2022.json +++ b/config/forms/2021_2022.json @@ -191,34 +191,9 @@ "header": "", "description": "", "questions": { - "la_known": { - "check_answer_label": "Do you know what local authority the property is located in?", - "header": "Do you know what local authority the property is located in?", - "hint_text": "", - "type": "radio", - "hidden_in_check_answers": { - "depends_on": [ - { "la_known": 0 }, - { "la_known": 1 } - ] - }, - "answer_options": { - "1": { - "value": "Yes" - }, - "0": { - "value": "No" - } - }, - "conditional_for": { - "la": [ - 1 - ] - } - }, "la": { "check_answer_label": "Local Authority", - "header": "Select a local authority", + "header": "What is the local authority of the property?", "hint_text": "", "type": "select", "answer_options": { @@ -539,12 +514,6 @@ "E07000128": "Wyre", "E07000239": "Wyre Forest", "E06000014": "York" - }, - "inferred_check_answers_value": { - "condition": { - "la_known": 0 - }, - "value": "Not known" } } }, diff --git a/config/locales/en.yml b/config/locales/en.yml index 456ce9805..ed4fbf31a 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -67,7 +67,6 @@ en: offered: relet_number: "Number of times the property has been re-let must be between 0 and 20" la: - la_known: "Enter name of local authority" la_invalid_for_org: "%{org_name} does not operate in %{la_name}" postcode_invalid_for_org: "Postcode must be in an area covered by %{org_name}" rsnvac: diff --git a/db/migrate/20220425145228_remove_la_known.rb b/db/migrate/20220425145228_remove_la_known.rb new file mode 100644 index 000000000..a8b7a239a --- /dev/null +++ b/db/migrate/20220425145228_remove_la_known.rb @@ -0,0 +1,13 @@ +class RemoveLaKnown < ActiveRecord::Migration[7.0] + def up + change_table :case_logs, bulk: true do |t| + t.remove :la_known + end + end + + def down + change_table :case_logs, bulk: true do |t| + t.column :la_known, :integer + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 40cd9cd83..94a44efde 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_04_25_143130) do +ActiveRecord::Schema[7.0].define(version: 2022_04_25_145228) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -155,7 +155,6 @@ ActiveRecord::Schema[7.0].define(version: 2022_04_25_143130) do t.integer "needstype" t.integer "lettype" t.integer "postcode_known" - t.integer "la_known" t.boolean "is_la_inferred" t.integer "totchild" t.integer "totelder" diff --git a/spec/factories/case_log.rb b/spec/factories/case_log.rb index ce2dfaf90..46e9171e7 100644 --- a/spec/factories/case_log.rb +++ b/spec/factories/case_log.rb @@ -128,7 +128,6 @@ FactoryBot.define do has_benefits { 1 } is_carehome { 0 } letting_in_sheltered_accommodation { 0 } - la_known { 1 } declaration { 1 } end created_at { Time.utc(2022, 2, 8, 16, 52, 15) } diff --git a/spec/features/form/accessible_autocomplete_spec.rb b/spec/features/form/accessible_autocomplete_spec.rb index f4412b0fa..ea557b017 100644 --- a/spec/features/form/accessible_autocomplete_spec.rb +++ b/spec/features/form/accessible_autocomplete_spec.rb @@ -8,8 +8,8 @@ RSpec.describe "Accessible Automcomplete" do FactoryBot.create( :case_log, :in_progress, - la_known: 1, - la: "E09000033", + previous_la_known: 1, + prevloc: "E09000033", is_la_inferred: false, owning_organisation: user.organisation, managing_organisation: user.organisation, @@ -22,13 +22,13 @@ RSpec.describe "Accessible Automcomplete" do it "allows type ahead filtering", js: true do visit("/logs/#{case_log.id}/accessible-select") - find("#case-log-la-field").click.native.send_keys("T", "h", "a", "n", :down, :enter) - expect(find("#case-log-la-field").value).to eq("Thanet") + find("#case-log-prevloc-field").click.native.send_keys("T", "h", "a", "n", :down, :enter) + expect(find("#case-log-prevloc-field").value).to eq("Thanet") end it "maintains enhancement state across back navigation", js: true do visit("/logs/#{case_log.id}/accessible-select") - find("#case-log-la-field").click.native.send_keys("T", "h", "a", "n", :down, :enter) + find("#case-log-prevloc-field").click.native.send_keys("T", "h", "a", "n", :down, :enter) click_button("Save and continue") click_link(text: "Back") expect(page).to have_selector("input", class: "autocomplete__input", count: 1) @@ -36,12 +36,12 @@ RSpec.describe "Accessible Automcomplete" do it "has a disabled null option" do visit("/logs/#{case_log.id}/accessible-select") - expect(page).to have_select("case-log-la-field", disabled_options: ["Select an option"]) + expect(page).to have_select("case-log-prevloc-field", disabled_options: ["Select an option"]) end it "has the correct option selected if one has been saved" do - case_log.update!(postcode_known: 0, la_known: 1, la: "E07000178") + case_log.update!(postcode_known: 0, previous_la_known: 1, prevloc: "E07000178") visit("/logs/#{case_log.id}/accessible-select") - expect(page).to have_select("case-log-la-field", selected: %w[Oxford]) + expect(page).to have_select("case-log-prevloc-field", selected: %w[Oxford]) end end diff --git a/spec/features/form/check_answers_page_spec.rb b/spec/features/form/check_answers_page_spec.rb index 44347fa61..8bce7412e 100644 --- a/spec/features/form/check_answers_page_spec.rb +++ b/spec/features/form/check_answers_page_spec.rb @@ -17,9 +17,9 @@ RSpec.describe "Form Check Answers Page" do let(:empty_case_log) do FactoryBot.create( :case_log, - la_known: 1, - la: "E09000033", - is_la_inferred: false, + previous_la_known: 1, + prevloc: "E09000033", + is_previous_la_inferred: false, owning_organisation: user.organisation, managing_organisation: user.organisation, ) diff --git a/spec/fixtures/exports/case_logs.xml b/spec/fixtures/exports/case_logs.xml index e837ae266..dfc14f8e5 100644 --- a/spec/fixtures/exports/case_logs.xml +++ b/spec/fixtures/exports/case_logs.xml @@ -113,7 +113,6 @@ 1 7 1 - 1 false 0 0 diff --git a/spec/fixtures/forms/2021_2022.json b/spec/fixtures/forms/2021_2022.json index 74f4b1916..c0ab4ca1f 100644 --- a/spec/fixtures/forms/2021_2022.json +++ b/spec/fixtures/forms/2021_2022.json @@ -302,7 +302,7 @@ }, "accessible_select": { "questions": { - "la": { + "prevloc": { "header": "Select options", "hint_text": "Type ahead to filter the options", "type": "select", @@ -321,8 +321,8 @@ }, "depends_on": [ { - "la_known": 1, - "is_la_inferred": false + "previous_la_known": 1, + "is_previous_la_inferred": false } ] }, @@ -369,6 +369,31 @@ "property_information": { "label": "Property information", "pages": { + "accessible_select_too": { + "questions": { + "la": { + "header": "Select options", + "hint_text": "Type ahead to filter the options", + "type": "select", + "check_answer_label": "Accessible Select", + "answer_options": { + "" : "Select an option", + "E07000223": "Adur", + "E09000023": "Lewisham", + "E08000003": "Manchester", + "E07000178": "Oxford", + "E07000114": "Thanet", + "E09000033": "Westminster", + "E06000014": "York" + } + } + }, + "depends_on": [ + { + "is_la_inferred": false + } + ] + }, "property_postcode": { "header": "", "description": "", @@ -411,7 +436,7 @@ "header": "", "description": "", "questions": { - "la_known": { + "previous_la_known": { "check_answer_label": "Do you know what local authority the property is located in?", "header": "Do you know what local authority the property is located in?", "hint_text": "", diff --git a/spec/models/case_log_spec.rb b/spec/models/case_log_spec.rb index 3f6620cb5..0ce9ac85f 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -1195,7 +1195,7 @@ RSpec.describe CaseLog do it "changes the LA if property postcode changes from not known to known and provided" do address_case_log.update!({ postcode_known: 0 }) - address_case_log.update!({ la_known: 1, la: "E09000033" }) + address_case_log.update!({ la: "E09000033" }) record_from_db = ActiveRecord::Base.connection.execute("select la, postcode_full from case_logs where id=#{address_case_log.id}").to_a[0] expect(record_from_db["postcode_full"]).to eq(nil) diff --git a/spec/models/form/question_spec.rb b/spec/models/form/question_spec.rb index 5ae5790f9..094d521e3 100644 --- a/spec/models/form/question_spec.rb +++ b/spec/models/form/question_spec.rb @@ -151,7 +151,7 @@ RSpec.describe Form::Question, type: :model do let(:section_id) { "household" } let(:subsection_id) { "household_needs" } let(:page_id) { "accessible_select" } - let(:question_id) { "la" } + let(:question_id) { "prevloc" } it "can map value from label" do expect(question.value_from_label("Manchester")).to eq("E08000003") diff --git a/spec/models/form/subsection_spec.rb b/spec/models/form/subsection_spec.rb index a9c573816..412f722e5 100644 --- a/spec/models/form/subsection_spec.rb +++ b/spec/models/form/subsection_spec.rb @@ -81,13 +81,13 @@ RSpec.describe Form::Subsection, type: :model do it "has question helpers for the number of answered questions" do subsection_definition = section_definition["subsections"]["household_needs"] subsection = described_class.new("household_needs", subsection_definition, section) - expected_questions = %w[armedforces illness accessibility_requirements la condition_effects] + expected_questions = %w[armedforces illness accessibility_requirements prevloc condition_effects] case_log.armedforces = 3 case_log.illness = 1 case_log.housingneeds_a = 1 - case_log.la_known = 1 - case_log.is_la_inferred = false - case_log.la = "E06000014" + case_log.previous_la_known = 1 + case_log.is_previous_la_inferred = false + case_log.prevloc = "E06000014" case_log.illness_type_1 = 1 expect(subsection.answered_questions(case_log).map(&:id)).to eq(expected_questions) expect(subsection.answered_questions_count(case_log)).to eq(5) diff --git a/spec/models/form_handler_spec.rb b/spec/models/form_handler_spec.rb index fb793d210..66ff32ed7 100644 --- a/spec/models/form_handler_spec.rb +++ b/spec/models/form_handler_spec.rb @@ -17,7 +17,7 @@ RSpec.describe FormHandler do form_handler = described_class.instance form = form_handler.get_form(test_form_name) expect(form).to be_a(Form) - expect(form.pages.count).to eq(34) + expect(form.pages.count).to eq(35) end end diff --git a/spec/models/validations/local_authority_validations_spec.rb b/spec/models/validations/local_authority_validations_spec.rb index 42c816c06..e02d5d6c1 100644 --- a/spec/models/validations/local_authority_validations_spec.rb +++ b/spec/models/validations/local_authority_validations_spec.rb @@ -37,15 +37,6 @@ RSpec.describe Validations::LocalAuthorityValidations do end describe "#validate_la" do - context "when previous la is known" do - it "la has to be provided" do - record.la_known = 1 - local_auth_validator.validate_la(record) - expect(record.errors["la"]) - .to include(match I18n.t("validations.property.la.la_known")) - end - end - context "when the organisation only operates in specific local authorities" do let(:organisation) { FactoryBot.create(:organisation) } let(:record) { FactoryBot.create(:case_log, owning_organisation: organisation) } diff --git a/spec/requests/case_logs_controller_spec.rb b/spec/requests/case_logs_controller_spec.rb index 2ce18f942..576fd7f18 100644 --- a/spec/requests/case_logs_controller_spec.rb +++ b/spec/requests/case_logs_controller_spec.rb @@ -494,12 +494,10 @@ RSpec.describe CaseLogsController, type: :request do sign_in user end - it "shows the inferred postcode" do + it "shows the inferred la" do case_log = FactoryBot.create(:case_log, owning_organisation: organisation, managing_organisation: organisation, - la_known: 1, - is_la_inferred: true, postcode_known: 1, postcode_full: "PO5 3TE") id = case_log.id