Browse Source

undo previous work to take new direction

pull/1469/head
Arthur Campbell 3 years ago
parent
commit
ecee182996
  1. 8
      app/models/form.rb
  2. 5
      app/models/lettings_log.rb
  3. 8
      app/models/log.rb
  4. 5
      app/models/sales_log.rb
  5. 35
      spec/models/lettings_log_spec.rb
  6. 36
      spec/models/sales_log_spec.rb

8
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)

5
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

8
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

5
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?

35
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) }

36
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/)

Loading…
Cancel
Save