Browse Source

Add buttons to switch between address questions

CLDC-3787-Autocomplete-address-search
Manny Dinssa 1 week ago
parent
commit
302a2e4757
  1. 20
      app/controllers/address_search_controller.rb
  2. 5
      app/helpers/form_page_helper.rb
  3. 2
      app/models/derived_variables/lettings_log_variables.rb
  4. 2
      app/models/derived_variables/sales_log_variables.rb
  5. 8
      app/models/form/lettings/pages/address_search.rb
  6. 8
      app/models/form/sales/pages/address_search.rb
  7. 1
      app/models/form/sales/pages/no_address_found.rb
  8. 4
      app/models/log.rb
  9. 6
      app/views/form/page.html.erb
  10. 4
      config/routes.rb

20
app/controllers/address_search_controller.rb

@ -54,26 +54,6 @@ class AddressSearchController < ApplicationController
redirect_to search_address_link(log) redirect_to search_address_link(log)
end end
def current
log_id = params[:log_id]
sales_log = SalesLog.find_by(id: log_id)
uprn = sales_log&.address_search
if uprn.present?
service = UprnClient.new(uprn)
service.call
if service.error.present?
render json: { error: service.error }, status: :unprocessable_entity
else
address = service.result.find { |result| result["UPRN"] == uprn }&.dig("ADDRESS")
render json: { stored_value: { uprn:, address: } }
end
else
render json: { stored_value: nil }
end
end
private private
def manual_address_link(log) def manual_address_link(log)

5
app/helpers/form_page_helper.rb

@ -46,9 +46,4 @@ module FormPageHelper
page.skip_href(log) || send(log.form.next_page_redirect_path(page, log, current_user, ignore_answered: true), log) page.skip_href(log) || send(log.form.next_page_redirect_path(page, log, current_user, ignore_answered: true), log)
end end
end end
def manual_address_link(log)
base_url = send("#{log.log_type}_url", log)
"#{base_url}/address"
end
end end

2
app/models/derived_variables/lettings_log_variables.rb

@ -97,7 +97,6 @@ module DerivedVariables::LettingsLogVariables
self.la = nil self.la = nil
self.address_line1_input = nil self.address_line1_input = nil
self.postcode_full_input = nil self.postcode_full_input = nil
self.address_search = nil
end end
end end
@ -113,7 +112,6 @@ module DerivedVariables::LettingsLogVariables
self.postcode_full = nil self.postcode_full = nil
self.la = nil self.la = nil
self.previous_la_known = nil if is_renewal? self.previous_la_known = nil if is_renewal?
self.address_search = nil
end end
if address_search if address_search

2
app/models/derived_variables/sales_log_variables.rb

@ -63,7 +63,6 @@ module DerivedVariables::SalesLogVariables
self.la = nil self.la = nil
self.address_line1_input = nil self.address_line1_input = nil
self.postcode_full_input = nil self.postcode_full_input = nil
self.address_search = nil
end end
end end
@ -80,7 +79,6 @@ module DerivedVariables::SalesLogVariables
self.la = nil self.la = nil
self.address_line1_input = nil self.address_line1_input = nil
self.postcode_full_input = nil self.postcode_full_input = nil
self.address_search = nil
end end
if address_search if address_search

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

@ -2,11 +2,9 @@ class Form::Lettings::Pages::AddressSearch < ::Form::Page
def initialize(id, hsh, subsection) def initialize(id, hsh, subsection)
super super
@id = "address_search" @id = "address_search"
# @depends_on = [ @depends_on = [
# { "uprn_known" => nil }, { "address_manually_entered?" => false },
# { "uprn_known" => 0 }, ]
# { "uprn_confirmed" => 0 },
# ]
end end
def questions def questions

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

@ -2,11 +2,9 @@ class Form::Sales::Pages::AddressSearch < ::Form::Page
def initialize(id, hsh, subsection) def initialize(id, hsh, subsection)
super super
@id = "address_search" @id = "address_search"
# @depends_on = [ @depends_on = [
# { "uprn_known" => nil }, { "address_manually_entered?" => false },
# { "uprn_known" => 0 }, ]
# { "uprn_confirmed" => 0 },
# ]
end end
def questions def questions

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

@ -16,7 +16,6 @@ class Form::Sales::Pages::NoAddressFound < ::Form::Page
{ "uprn_known" => nil, "address_options_present?" => false }, { "uprn_known" => nil, "address_options_present?" => false },
{ "uprn_known" => 0, "address_options_present?" => false }, { "uprn_known" => 0, "address_options_present?" => false },
{ "uprn_confirmed" => 0, "address_options_present?" => false }, { "uprn_confirmed" => 0, "address_options_present?" => false },
] ]
end end

4
app/models/log.rb

@ -180,6 +180,10 @@ class Log < ApplicationRecord
ethnic_group == 17 ethnic_group == 17
end end
def address_manually_entered?
uprn.nil? && address_search.nil? && address_line1.present? && town_or_city.present?
end
def collection_period_open? def collection_period_open?
return false if older_than_previous_collection_year? return false if older_than_previous_collection_year?

6
app/views/form/page.html.erb

@ -75,6 +75,12 @@
<%= f.hidden_field :check_errors, value: @check_errors %> <%= f.hidden_field :check_errors, value: @check_errors %>
<% end %> <% end %>
<% if @page.id == "address" %>
<div class="govuk-button-group">
<%= govuk_link_to "Clear address and search instead", address_search_input_path(@log.log_type, @log.id), class: "govuk-button govuk-button--secondary" %>
</div>
<% end %>
<% if @pages_with_errors_count > 1 %> <% if @pages_with_errors_count > 1 %>
<div class="govuk-button-group"> <div class="govuk-button-group">
<%= f.submit "See all related answers", name: "check_errors", class: "govuk-body govuk-link submit-button-link" %> <%= f.submit "See all related answers", name: "check_errors", class: "govuk-body govuk-link submit-button-link" %>

4
config/routes.rb

@ -39,10 +39,10 @@ Rails.application.routes.draw do
get "/data-sharing-agreement", to: "content#data_sharing_agreement" get "/data-sharing-agreement", to: "content#data_sharing_agreement"
get "/service-moved", to: "maintenance#service_moved" get "/service-moved", to: "maintenance#service_moved"
get "/service-unavailable", to: "maintenance#service_unavailable" get "/service-unavailable", to: "maintenance#service_unavailable"
get "/address_options", to: "address_options#index"
get "/address_options/current", to: "address_options#current"
get "/address_search", to: "address_search#index" get "/address_search", to: "address_search#index"
get "/address_search/current", to: "address_search#current" get "/address_search/current", to: "address_search#current"
get "/address_search/manual_input/:log_type/:log_id", to: "address_search#manual_input", as: "address_manual_input"
get "/address_search/search_input/:log_type/:log_id", to: "address_search#search_input", as: "address_search_input"
get "collection-resources", to: "collection_resources#index" get "collection-resources", to: "collection_resources#index"
get "/collection-resources/:log_type/:year/:resource_type/download", to: "collection_resources#download_mandatory_collection_resource", as: :download_mandatory_collection_resource get "/collection-resources/:log_type/:year/:resource_type/download", to: "collection_resources#download_mandatory_collection_resource", as: :download_mandatory_collection_resource

Loading…
Cancel
Save