Browse Source

Reuse uprn id instead of address_search

CLDC-3787-Autocomplete-address-search
Manny Dinssa 4 days ago
parent
commit
5b284d760c
  1. 2
      app/models/derived_variables/lettings_log_variables.rb
  2. 4
      app/models/derived_variables/sales_log_variables.rb
  3. 1
      app/models/form/lettings/pages/address_search.rb
  4. 3
      app/models/form/lettings/questions/address_search.rb
  5. 2
      app/models/form/lettings/questions/uprn_confirmation.rb
  6. 2
      app/models/form/lettings/questions/uprn_known.rb
  7. 1
      app/models/form/sales/pages/address_search.rb
  8. 4
      app/models/form/sales/questions/address_search.rb
  9. 2
      app/models/form/sales/questions/uprn_confirmation.rb
  10. 2
      app/models/form/sales/questions/uprn_known.rb
  11. 2
      app/models/lettings_log.rb
  12. 4
      app/models/log.rb
  13. 2
      app/services/csv/lettings_log_csv_service.rb
  14. 2
      app/services/csv/sales_log_csv_service.rb
  15. 6
      db/migrate/20250217230008_remove_address_search_from_logs.rb
  16. 4
      db/schema.rb
  17. 1
      spec/factories/lettings_log.rb
  18. 1
      spec/factories/sales_log.rb
  19. 2
      spec/features/sales_log_spec.rb
  20. 8
      spec/models/form/lettings/questions/uprn_confirmation_spec.rb
  21. 4
      spec/models/form/lettings/questions/uprn_spec.rb
  22. 1
      spec/models/lettings_log_spec.rb
  23. 5
      spec/requests/address_search_controller_spec.rb

2
app/models/derived_variables/lettings_log_variables.rb

@ -116,8 +116,8 @@ module DerivedVariables::LettingsLogVariables
self.uprn_known = 0
self.uprn_selection = nil
else
self.uprn = address_search
self.uprn_confirmed = 1 if uprn.present?
self.uprn_known = 1 if uprn.present?
reset_address_fields! if uprn.blank?
end

4
app/models/derived_variables/sales_log_variables.rb

@ -68,8 +68,8 @@ module DerivedVariables::SalesLogVariables
self.uprn_known = 0
self.uprn_selection = nil
else
self.uprn = address_search
self.uprn_confirmed = 1 if uprn
self.uprn_confirmed = 1 if uprn.present?
self.uprn_known = 1 if uprn.present?
reset_address_fields! if uprn.blank?
end

1
app/models/form/lettings/pages/address_search.rb

@ -2,6 +2,7 @@ class Form::Lettings::Pages::AddressSearch < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "address_search"
@copy_key = "sales.property_information.address_search"
@depends_on = [{ "is_supported_housing?" => false, "manual_address_entry_selected" => false }]
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end

3
app/models/form/lettings/questions/address_search.rb

@ -1,8 +1,9 @@
class Form::Lettings::Questions::AddressSearch < ::Form::Question
def initialize(id, hsh, page)
super
@id = "address_search"
@id = "uprn"
@type = "address_search"
@copy_key = "lettings.property_information.address_search"
@plain_label = true
@bottom_guidance_partial = "address_search"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]

2
app/models/form/lettings/questions/uprn_confirmation.rb

@ -37,6 +37,6 @@ class Form::Lettings::Questions::UprnConfirmation < ::Form::Question
end
def hidden_in_check_answers?(log, _current_user = nil)
log.uprn_known != 1 || log.uprn_confirmed.present? || log.address_search.present?
log.uprn_known != 1 || log.uprn_confirmed.present?
end
end

2
app/models/form/lettings/questions/uprn_known.rb

@ -5,7 +5,7 @@ class Form::Lettings::Questions::UprnKnown < ::Form::Question
@copy_key = "lettings.property_information.uprn.uprn_known"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@conditional_for = { "uprn" => [1] }
# @conditional_for = { "uprn" => [1] } #TODO: DELETE
@inferred_check_answers_value = [
{
"condition" => { "uprn_known" => 0 },

1
app/models/form/sales/pages/address_search.rb

@ -2,6 +2,7 @@ class Form::Sales::Pages::AddressSearch < ::Form::Page
def initialize(id, hsh, subsection)
super
@id = "address_search"
@copy_key = "sales.property_information.address_search"
@depends_on = [{ "manual_address_entry_selected" => false }]
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end

4
app/models/form/sales/questions/address_search.rb

@ -1,12 +1,14 @@
class Form::Sales::Questions::AddressSearch < ::Form::Question
def initialize(id, hsh, page)
super
@id = "address_search"
@id = "uprn"
@type = "address_search"
@copy_key = "sales.property_information.address_search"
@plain_label = true
@bottom_guidance_partial = "address_search"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
@hide_question_number_on_page = true
@conditional_on = nil
end
def answer_options(log = nil, _user = nil)

2
app/models/form/sales/questions/uprn_confirmation.rb

@ -35,6 +35,6 @@ class Form::Sales::Questions::UprnConfirmation < ::Form::Question
end
def hidden_in_check_answers?(log, _current_user = nil)
log.uprn_known != 1 || log.uprn_confirmed.present? || log.address_search.present?
log.uprn_known != 1 || log.uprn_confirmed.present?
end
end

2
app/models/form/sales/questions/uprn_known.rb

@ -5,7 +5,7 @@ class Form::Sales::Questions::UprnKnown < ::Form::Question
@copy_key = "sales.property_information.uprn.uprn_known"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@conditional_for = { "uprn" => [1] }
# @conditional_for = { "uprn" => [1] } #TODO: DELETE
@inferred_check_answers_value = [
{
"condition" => { "uprn_known" => 0 },

2
app/models/lettings_log.rb

@ -145,7 +145,7 @@ class LettingsLog < Log
scope :filter_by_managing_organisation_text_search, ->(param, _user) { where(managing_organisation: Organisation.search_by(param)) }
AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at].freeze
OPTIONAL_FIELDS = %w[tenancycode propcode chcharge address_search].freeze
OPTIONAL_FIELDS = %w[tenancycode propcode chcharge].freeze
RENT_TYPE_MAPPING_LABELS = { 1 => "Social Rent", 2 => "Affordable Rent", 3 => "Intermediate Rent", 4 => "Specified accommodation" }.freeze
HAS_BENEFITS_OPTIONS = [1, 6, 8, 7].freeze
NUM_OF_WEEKS_FROM_PERIOD = { 2 => 26, 3 => 13, 4 => 12, 5 => 50, 6 => 49, 7 => 48, 8 => 47, 9 => 46, 1 => 52, 10 => 53 }.freeze

4
app/models/log.rb

@ -126,8 +126,8 @@ class Log < ApplicationRecord
end
def address_options
if address_search.present?
service = UprnClient.new(address_search)
if uprn.present?
service = UprnClient.new(uprn)
service.call
if service.result.blank? || service.error.present?
@address_options = []

2
app/services/csv/lettings_log_csv_service.rb

@ -258,7 +258,7 @@ module Csv
def lettings_log_attributes
ordered_questions = FormHandler.instance.ordered_questions_for_year(@year, "lettings")
soft_validations_attributes = soft_validations_attributes(ordered_questions)
ordered_questions.reject! { |q| q.id.match?(/age\d_known|nationality_all_group|rent_value_check|address_search/) }
ordered_questions.reject! { |q| q.id.match?(/age\d_known|nationality_all_group|rent_value_check/) }
attributes = insert_derived_and_related_attributes(ordered_questions)
order_address_fields_for_support(attributes)
final_attributes = non_question_fields + attributes + SCHEME_AND_LOCATION_ATTRIBUTES

2
app/services/csv/sales_log_csv_service.rb

@ -162,7 +162,7 @@ module Csv
def sales_log_attributes
ordered_questions = FormHandler.instance.ordered_questions_for_year(@year, "sales")
ordered_questions.reject! { |q| q.id.match?(/((?<!la)_known)|(_check)|(_asked)|nationality_all_group|nationality_all_buyer2_group|address_search/) }
ordered_questions.reject! { |q| q.id.match?(/((?<!la)_known)|(_check)|(_asked)|nationality_all_group|nationality_all_buyer2_group/) }
attributes = insert_derived_and_related_attributes(ordered_questions)
order_address_fields_for_support(attributes)
final_attributes = non_question_fields + attributes

6
db/migrate/20250217230008_remove_address_search_from_logs.rb

@ -0,0 +1,6 @@
class RemoveAddressSearchFromLogs < ActiveRecord::Migration[7.2]
def change
remove_column :sales_logs, :address_search, :string
remove_column :lettings_logs, :address_search, :string
end
end

4
db/schema.rb

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2025_02_17_145927) do
ActiveRecord::Schema[7.2].define(version: 2025_02_17_230008) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -373,7 +373,6 @@ ActiveRecord::Schema[7.2].define(version: 2025_02_17_145927) do
t.integer "partner_under_16_value_check"
t.integer "multiple_partners_value_check"
t.bigint "created_by_id"
t.string "address_search"
t.boolean "manual_address_entry_selected", default: false
t.index ["assigned_to_id"], name: "index_lettings_logs_on_assigned_to_id"
t.index ["bulk_upload_id"], name: "index_lettings_logs_on_bulk_upload_id"
@ -771,7 +770,6 @@ ActiveRecord::Schema[7.2].define(version: 2025_02_17_145927) do
t.datetime "initialpurchase"
t.integer "has_management_fee"
t.decimal "management_fee", precision: 10, scale: 2
t.string "address_search"
t.boolean "manual_address_entry_selected", default: false
t.index ["assigned_to_id"], name: "index_sales_logs_on_assigned_to_id"
t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id"

1
spec/factories/lettings_log.rb

@ -100,7 +100,6 @@ FactoryBot.define do
waityear { 7 }
postcode_known { 1 }
postcode_full { "SW1A 1AA" }
address_search { "10033558653" }
reasonpref { 1 }
cbl { 0 }
chr { 1 }

1
spec/factories/sales_log.rb

@ -161,7 +161,6 @@ FactoryBot.define do
mortlen { 10 }
pcodenk { 0 }
postcode_full { "SW1A 1AA" }
address_search { "10033558653" }
is_la_inferred { false }
mortgagelender { 5 }
extrabor { 1 }

2
spec/features/sales_log_spec.rb

@ -230,7 +230,7 @@ RSpec.describe "Sales Log Features" do
end
context "when displaying the question number in the page header" do
let(:sales_log) { FactoryBot.create(:sales_log, :shared_ownership_setup_complete, jointpur: 2, address_search_input: false, owning_organisation: user.organisation, assigned_to: user) }
let(:sales_log) { FactoryBot.create(:sales_log, :shared_ownership_setup_complete, jointpur: 2, owning_organisation: user.organisation, assigned_to: user) }
context "when visiting the address page" do
before do

8
spec/models/form/lettings/questions/uprn_confirmation_spec.rb

@ -51,16 +51,16 @@ RSpec.describe Form::Lettings::Questions::UprnConfirmation, type: :model do
end
describe "has the correct hidden_in_check_answers" do
context "when uprn_known != 1 && uprn_confirmed == nil && address_search == nil" do
let(:log) { build(:lettings_log, uprn_known: 0, uprn_confirmed: nil, address_search: nil) }
context "when uprn_known != 1 && uprn_confirmed == nil" do
let(:log) { build(:lettings_log, uprn_known: 0, uprn_confirmed: nil) }
it "returns true" do
expect(question.hidden_in_check_answers?(log)).to eq(true)
end
end
context "when uprn_known == 1 && uprn_confirmed == nil && address_search == 1" do
let(:log) { build(:lettings_log, :completed, uprn_known: 1, uprn: 1, address_search: nil, uprn_confirmed: nil) }
context "when uprn_known == 1 && uprn_confirmed == nil" do
let(:log) { build(:lettings_log, :completed, uprn_known: 1, uprn: 1, uprn_confirmed: nil) }
it "returns false" do
expect(question.hidden_in_check_answers?(log)).to eq(false)

4
spec/models/form/lettings/questions/uprn_spec.rb

@ -52,7 +52,6 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
la: "E09000003",
uprn_known:,
uprn:,
address_search:,
manual_address_entry_selected:,
)
end
@ -60,7 +59,6 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
context "when uprn known nil" do
let(:uprn_known) { nil }
let(:uprn) { nil }
let(:address_search) { nil }
let(:manual_address_entry_selected) { true }
it "returns formatted value" do
@ -71,7 +69,6 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
context "when uprn known" do
let(:uprn_known) { 1 }
let(:uprn) { 1 }
let(:address_search) { 1 }
let(:manual_address_entry_selected) { false }
it "returns formatted value" do
@ -84,7 +81,6 @@ RSpec.describe Form::Lettings::Questions::Uprn, type: :model do
context "when uprn not known" do
let(:uprn_known) { 0 }
let(:uprn) { nil }
let(:address_search) { nil }
let(:manual_address_entry_selected) { true }
it "returns formatted value" do

1
spec/models/lettings_log_spec.rb

@ -869,7 +869,6 @@ RSpec.describe LettingsLog do
tenancycode
propcode
chcharge
address_search
tenancylength
address_line2
county

5
spec/requests/address_search_controller_spec.rb

@ -14,7 +14,6 @@ RSpec.describe AddressSearchController, type: :request do
it "correctly sets address fields" do
sales_log.reload
expect(sales_log.manual_address_entry_selected).to eq(false)
expect(sales_log.address_search).to eq(nil)
expect(sales_log.uprn_known).to eq(nil)
expect(sales_log.uprn).to eq(nil)
expect(sales_log.uprn_confirmed).to eq(nil)
@ -48,7 +47,6 @@ RSpec.describe AddressSearchController, type: :request do
it "correctly sets address fields" do
lettings_log.reload
expect(lettings_log.address_search).to eq("10033558653")
expect(lettings_log.uprn_known).to eq(1)
expect(lettings_log.uprn).to eq("10033558653")
expect(lettings_log.uprn_confirmed).to eq(1)
@ -94,7 +92,6 @@ RSpec.describe AddressSearchController, type: :request do
expect(lettings_log.address_line1).to eq(nil)
expect(lettings_log.address_line2).to eq(nil)
expect(lettings_log.town_or_city).to eq(nil)
expect(lettings_log.address_search_value_check).to eq(nil)
expect(lettings_log.la).to eq(nil)
get "/address-search/search-input/lettings_log/#{lettings_log.id}"
@ -120,7 +117,6 @@ RSpec.describe AddressSearchController, type: :request do
it "correctly sets address fields" do
sales_log.reload
expect(sales_log.manual_address_entry_selected).to eq(true)
expect(sales_log.address_search).to eq(nil)
expect(sales_log.uprn_known).to eq(0)
expect(sales_log.uprn).to eq(nil)
expect(sales_log.uprn_confirmed).to eq(nil)
@ -136,7 +132,6 @@ RSpec.describe AddressSearchController, type: :request do
sales_log.reload
expect(sales_log.manual_address_entry_selected).to eq(false)
expect(sales_log.address_search).to eq(nil)
expect(sales_log.uprn_known).to eq(nil)
expect(sales_log.uprn).to eq(nil)
expect(sales_log.uprn_confirmed).to eq(nil)

Loading…
Cancel
Save