diff --git a/app/models/form_handler.rb b/app/models/form_handler.rb index 83da1a89b..4f9993a24 100644 --- a/app/models/form_handler.rb +++ b/app/models/form_handler.rb @@ -33,8 +33,7 @@ class FormHandler form = Form.new(form_path) lettings_form_definition = { "form" => form, "type" => "lettings", "start_year" => form.start_date.year } - form_mappings = { 0 => "current_lettings", 1 => "previous_lettings", -1 => "next_lettings" } - form_to_set = form_mappings[current_collection_start_year - form.start_date.year] + form_to_set = form_name_from_start_year(form.start_date.year, "lettings") forms[form_to_set] = lettings_form_definition if forms[form_to_set].blank? end end @@ -47,6 +46,11 @@ class FormHandler today < window_end_date ? today.year - 1 : today.year end + def form_name_from_start_year(year, type) + form_mappings = { 0 => "current_#{type}", 1 => "previous_#{type}", -1 => "next_#{type}" } + form_mappings[current_collection_start_year - year] + end + private def get_all_forms diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index c5c153cc8..c85f2d0c3 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -66,8 +66,7 @@ class LettingsLog < Log def form_name return unless startdate - form_mappings = { 0 => "current_lettings", 1 => "previous_lettings", -1 => "next_lettings" } - form_mappings[FormHandler.instance.current_collection_start_year - collection_start_year] if collection_start_year.present? + FormHandler.instance.form_name_from_start_year(collection_start_year, "lettings") end def self.editable_fields diff --git a/app/models/sales_log.rb b/app/models/sales_log.rb index a8b1b02f8..4400f95bc 100644 --- a/app/models/sales_log.rb +++ b/app/models/sales_log.rb @@ -23,8 +23,7 @@ class SalesLog < Log def form_name return unless startdate - form_mappings = { 0 => "current_sales", 1 => "previous_sales", -1 => "next_sales" } - form_mappings[FormHandler.instance.current_collection_start_year - collection_start_year] if collection_start_year.present? + FormHandler.instance.form_name_from_start_year(collection_start_year, "sales") end def form diff --git a/app/services/csv/lettings_log_csv_service.rb b/app/services/csv/lettings_log_csv_service.rb index 32185bf55..101cd7e6c 100644 --- a/app/services/csv/lettings_log_csv_service.rb +++ b/app/services/csv/lettings_log_csv_service.rb @@ -53,8 +53,7 @@ module Csv downloaded_form_years = LettingsLog.all.map(&:collection_start_year).uniq.compact if downloaded_form_years.count == 1 && downloaded_form_years[0].present? - form_mappings = { 0 => "current_lettings", 1 => "previous_lettings", -1 => "next_lettings" } - form_name = form_mappings[FormHandler.instance.current_collection_start_year - downloaded_form_years[0]] + form_name = FormHandler.instance.form_name_from_start_year(downloaded_form_years[0], "lettings") downloaded_form_fields = FormHandler.instance.get_form(form_name).questions else downloaded_form_fields = FormHandler.instance.current_lettings_form.questions diff --git a/spec/models/form_handler_spec.rb b/spec/models/form_handler_spec.rb index 94097fb9b..43f315919 100644 --- a/spec/models/form_handler_spec.rb +++ b/spec/models/form_handler_spec.rb @@ -52,14 +52,14 @@ RSpec.describe FormHandler do it "is able to load a current sales form" do form = form_handler.get_form("current_sales") expect(form).to be_a(Form) - expect(form.pages.count).to eq(1) + expect(form.pages.count).to eq(2) expect(form.name).to eq("2022_2023_sales") end it "is able to load a previous sales form" do form = form_handler.get_form("previous_sales") expect(form).to be_a(Form) - expect(form.pages.count).to eq(1) + expect(form.pages.count).to eq(2) expect(form.name).to eq("2021_2022_sales") end end