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.
51 lines
1.4 KiB
51 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
|
|
|