Submit social housing lettings and sales data (CORE)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.4 KiB

module Forms
module BulkUploadForm
class Year
include ActiveModel::Model
include ActiveModel::Attributes
include Rails.application.routes.url_helpers
attribute :log_type
attribute :year, :integer
attribute :organisation_id, :integer
validates :year, presence: true
def view_path
"bulk_upload_#{log_type}_logs/forms/year"
end
def options
possible_years.map do |year|
OpenStruct.new(id: year, name: "#{year} to #{year + 1}")
end
end
def back_path
if organisation_id.present?
send("#{log_type}_logs_organisation_path", organisation_id)
else
send("#{log_type}_logs_path")
end
end
def next_path
send("bulk_upload_#{log_type}_log_path", id: "prepare-your-file", form: { year:, organisation_id: }.compact)
end
def save!
true
end
private
def possible_years
[
FormHandler.instance.send("#{log_type}_forms")["current_#{log_type}"].start_date.year,
(FormHandler.instance.send("previous_#{log_type}_form").start_date.year if FormHandler.instance.send("#{log_type}_in_crossover_period?")),
(FormHandler.instance.send("next_#{log_type}_form").start_date.year if FeatureToggle.allow_future_form_use?),
].compact
end
end
end
end