diff --git a/app/controllers/lettings_logs_controller.rb b/app/controllers/lettings_logs_controller.rb index 621580d28..93009b68a 100644 --- a/app/controllers/lettings_logs_controller.rb +++ b/app/controllers/lettings_logs_controller.rb @@ -37,6 +37,7 @@ class LettingsLogsController < LogsController def show respond_to do |format| # We don't have a dedicated non-editable show view + mark_logs_resolved format.html { edit } format.json do if @log @@ -112,4 +113,10 @@ private def post_create_redirect_url(log) lettings_log_url(log) end + + def mark_logs_resolved + if @log&.unresolved == true && @log.location.present? && @log.scheme.present? && @log.update(unresolved: false) + flash[:notice] = "This log is now complete" + end + end end diff --git a/app/models/derived_variables/lettings_log_variables.rb b/app/models/derived_variables/lettings_log_variables.rb index 87d278cde..1b1817ec3 100644 --- a/app/models/derived_variables/lettings_log_variables.rb +++ b/app/models/derived_variables/lettings_log_variables.rb @@ -65,8 +65,6 @@ module DerivedVariables::LettingsLogVariables self.voiddate = startdate if is_renewal? self.vacdays = property_vacant_days - self.unresolved = false if unresolved == true && location.present? && scheme.present? - set_housingneeds_fields if housingneeds? end diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index ab986015d..15936b767 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -1841,23 +1841,6 @@ RSpec.describe LettingsLog do expect(lettings_log["housingneeds_g"]).to eq(1) end end - - context "when updating a log affected by deactivation" do - let(:scheme) { FactoryBot.create(:scheme, owning_organisation: lettings_log.owning_organisation) } - let(:location) { FactoryBot.create(:location, scheme:) } - - before do - lettings_log.update!({ needstype: 2, location: nil, scheme: nil, unresolved: true }) - lettings_log.reload - end - - it "sets unresolved to false if scheme and location have been provided" do - lettings_log.update!({ location:, scheme: }) - record_from_db = ActiveRecord::Base.connection.execute("select unresolved from lettings_logs where id=#{lettings_log.id}").to_a[0] - expect(record_from_db["unresolved"]).to eq(false) - expect(lettings_log["unresolved"]).to eq(false) - end - end end describe "optional fields" do diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 150dfe735..a9cb67e9c 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -706,6 +706,27 @@ RSpec.describe LettingsLogsController, type: :request do expect(response).to have_http_status(:not_found) end end + + context "when the log is unresolved" do + let!(:scheme) { FactoryBot.create(:scheme, owning_organisation: user.organisation) } + let!(:location) { FactoryBot.create(:location, scheme:) } + + before do + lettings_log.update!(needstype: 2, scheme:, location:, unresolved: true) + sign_in user + get "/lettings-logs/#{lettings_log.id}", headers:, params: {} + end + + it "marks it as resolved when both scheme and location exist" do + lettings_log.reload + expect(lettings_log.unresolved).to eq(false) + end + + it "displays a success banner" do + expect(page).to have_css(".govuk-notification-banner.govuk-notification-banner--success") + expect(page).to have_content("This log is now complete") + end + end end end end