diff --git a/app/controllers/bulk_upload_logs_controller.rb b/app/controllers/bulk_upload_logs_controller.rb new file mode 100644 index 000000000..248da1927 --- /dev/null +++ b/app/controllers/bulk_upload_logs_controller.rb @@ -0,0 +1,37 @@ +class BulkUploadLogsController < ApplicationController + before_action :authenticate_user! + + def start + if in_crossover_period? + redirect_to bulk_upload_path(id: "year") + else + redirect_to bulk_upload_path(id: "prepare-your-file") + end + end + +private + + def in_crossover_period? + FormHandler.instance.forms.values.any?(&:in_crossover_period?) + end + + def bulk_upload_path(id:) + case log_type + when "lettings" + bulk_upload_lettings_log_path(id:) + when "sales" + bulk_upload_sales_log_path(id:) + end + end + + def log_type + case request.path.split("/")[1] + when "lettings-logs" + "lettings" + when "sales-logs" + "sales" + else + raise "Log type not handled" + end + end +end diff --git a/app/helpers/logs_helper.rb b/app/helpers/logs_helper.rb new file mode 100644 index 000000000..6567f0a13 --- /dev/null +++ b/app/helpers/logs_helper.rb @@ -0,0 +1,21 @@ +module LogsHelper + def log_type_for_controller(controller) + case controller.class.to_s + when "LettingsLogsController" + "lettings" + when "SalesLogsController" + "sales" + else + raise "Log type not found for #{controller.class}" + end + end + + def bulk_upload_path_for_controller(controller, id:) + case log_type_for_controller(controller) + when "lettings" + bulk_upload_lettings_log_path(id:) + when "sales" + bulk_upload_sales_log_path(id:) + end + end +end diff --git a/app/helpers/navigation_items_helper.rb b/app/helpers/navigation_items_helper.rb index 07c125a8d..d996894ea 100644 --- a/app/helpers/navigation_items_helper.rb +++ b/app/helpers/navigation_items_helper.rb @@ -65,11 +65,11 @@ module NavigationItemsHelper private def lettings_logs_current?(path) - path == "/lettings-logs" + path.starts_with?("/lettings-logs") end def sales_logs_current?(path) - path == "/sales-logs" + path.starts_with?("/sales-logs") end def users_current?(path) diff --git a/app/models/form.rb b/app/models/form.rb index 22321f431..9d9acf2ea 100644 --- a/app/models/form.rb +++ b/app/models/form.rb @@ -223,4 +223,12 @@ class Form end end end + + def in_crossover_period?(now: Time.zone.now) + ((end_date - 3.months) < now) && (now < end_date) + end + + def inspect + "#<#{self.class} @type=#{type} @name=#{name}>" + end end diff --git a/app/views/bulk_upload_logs/show.html.erb b/app/views/bulk_upload_logs/show.html.erb new file mode 100644 index 000000000..7c5959ba8 --- /dev/null +++ b/app/views/bulk_upload_logs/show.html.erb @@ -0,0 +1 @@ +Find me in app/views/bulk_upload_logs/show.html.erb diff --git a/app/views/logs/index.html.erb b/app/views/logs/index.html.erb index 431ca0f45..81b4cb7c8 100644 --- a/app/views/logs/index.html.erb +++ b/app/views/logs/index.html.erb @@ -10,14 +10,18 @@ <% end %>