diff --git a/app/models/form.rb b/app/models/form.rb index bf79821fb..eefbb585a 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -230,14 +230,6 @@ class Form questions.select { |q| q.type == "numeric" } end - def radio_questions_valid_options - questions.select { |q| q.type == "radio" } - .group_by(&:id) - .transform_values! do |q_array| - q_array.flat_map { |q| q.answer_options.keys } - end - end - def previous_page(page_ids, page_index, log, current_user) prev_page = get_page(page_ids[page_index - 1]) return prev_page.id if prev_page.routed_to?(log, current_user) diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index daab8a34e..cd1fffd22 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -26,7 +26,6 @@ class LettingsLog < Log validates_with LettingsLogValidator before_validation :recalculate_start_year!, if: :startdate_changed? - before_validation :clear_invalid_radio_answers!, if: :startdate_changed? before_validation :reset_scheme_location!, if: :scheme_changed?, unless: :location_changed? before_validation :process_postcode_changes!, if: :postcode_full_changed? before_validation :process_previous_postcode_changes!, if: :ppostcode_full_changed? @@ -81,10 +80,6 @@ class LettingsLog < Log FormHandler.instance.form_name_from_start_year(collection_start_year, "lettings") end - def clear_invalid_radio_answers! - super if startdate_was && @start_year != FormHandler.instance.collection_start_year(startdate_was) - end - def self.editable_fields attribute_names - AUTOGENERATED_FIELDS end diff --git a/app/models/log.rb b/app/models/log.rb index 5da5c037b..33d3c4547 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -63,14 +63,6 @@ class Log < ApplicationRecord end end - def clear_invalid_radio_answers! - form.radio_questions_valid_options.each do |question_id, valid_options| - next unless (value = self[question_id]) - - self[question_id] = nil unless valid_options.include?(value.to_s) - end - end - def collection_start_year return @start_year if @start_year diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index c1fc7fbae..ebb3ef4e3 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -26,7 +26,6 @@ class SalesLog < Log validates_with SalesLogValidator before_validation :recalculate_start_year!, if: :saledate_changed? - before_validation :clear_invalid_radio_answers!, if: :saledate_changed? before_validation :reset_invalidated_dependent_fields! before_validation :process_postcode_changes!, if: :postcode_full_changed? before_validation :process_previous_postcode_changes!, if: :ppostcode_full_changed? @@ -77,10 +76,6 @@ class SalesLog < Log OPTIONAL_FIELDS + dynamically_not_required end - def clear_invalid_radio_answers! - super if saledate_was && @start_year != FormHandler.instance.collection_start_year(saledate_was) - end - def dynamically_not_required not_required = [] not_required << "proplen" if proplen_optional? diff --git a/spec/models/lettings_log_spec.rb b/spec/models/lettings_log_spec.rb index 2941a8ccc..169058252 100644 --- a/spec/models/lettings_log_spec.rb +++ b/spec/models/lettings_log_spec.rb @@ -2621,41 +2621,6 @@ RSpec.describe LettingsLog do end end - context "when the collection year is changed" do - around do |example| - Timecop.freeze(now) do - Singleton.__init__(FormHandler) - FormHandler.instance.use_real_forms! - example.run - end - Timecop.return - end - - let(:lettings_log) { FactoryBot.create(:lettings_log, :about_completed, :sheltered_housing, startdate: now, sheltered:) } - let(:now) { Time.zone.local(2023, 6, 1) } - - context "and selected answer options are no longer valid" do - let(:sheltered) { 5 } - - it "clears those values" do - expect(lettings_log.sheltered).to be 5 - lettings_log.update!(startdate: Time.zone.local(2023, 1, 1)) - expect(lettings_log.sheltered).to be nil - end - end - - context "and selected answer options are still valid" do - let(:sheltered) { 2 } - - it "does not clear those values" do - expect(lettings_log.sheltered).to be 2 - lettings_log.update!(startdate: Time.zone.local(2023, 1, 1)) - expect(lettings_log.sheltered).to be 2 - end - end - end - end - describe "tshortfall_unknown?" do context "when tshortfall is nil" do let(:lettings_log) { create(:lettings_log, :in_progress, tshortfall_known: nil) } diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index 174de5795..c008269ea 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -222,42 +222,6 @@ RSpec.describe SalesLog, type: :model do end end - describe "resetting invalidated fields" do - context "when the collection year is changed" do - around do |example| - Timecop.freeze(now) do - Singleton.__init__(FormHandler) - FormHandler.instance.use_real_forms! - example.run - end - Timecop.return - end - - let(:sales_log) { FactoryBot.create(:sales_log, :shared_ownership, saledate: now, type:) } - let(:now) { Time.zone.local(2023, 6, 1) } - - context "and selected answer options are no longer valid" do - let(:type) { 32 } - - it "clears those values" do - expect(sales_log.type).to be 32 - sales_log.update!(saledate: Time.zone.local(2023, 1, 1)) - expect(sales_log.type).to be nil - end - end - - context "and selected answer options are still valid" do - let(:type) { 24 } - - it "does not clear those values" do - expect(sales_log.type).to be 24 - sales_log.update!(saledate: Time.zone.local(2023, 1, 1)) - expect(sales_log.type).to be 24 - end - end - end - end - context "when saving addresses" do before do stub_request(:get, /api.postcodes.io/)