|
|
|
|
@ -1,13 +1,12 @@
|
|
|
|
|
class Form |
|
|
|
|
attr_reader :form_definition, :sections, :subsections, :pages, :questions, |
|
|
|
|
:start_date, :submission_deadline, :type, :name, :setup_definition, |
|
|
|
|
:setup_sections, :form_sections, :unresolved_log_redirect_page_id |
|
|
|
|
attr_accessor :new_logs_end_date, :edit_end_date |
|
|
|
|
:start_date, :new_logs_end_date, :submission_deadline, :type, :name, :setup_definition, |
|
|
|
|
:setup_sections, :form_sections, :unresolved_log_redirect_page_id, :edit_end_date |
|
|
|
|
|
|
|
|
|
def initialize(form_path, start_year = "", sections_in_form = [], type = "lettings") |
|
|
|
|
if sales_or_start_year_after_2022?(type, start_year) |
|
|
|
|
@start_date = Time.zone.local(start_year, 4, 1) |
|
|
|
|
@new_logs_end_date = Time.zone.local(start_year + 1, 11, 1) # this is to be manually updated each year when we want to stop users from creating new logs |
|
|
|
|
@new_logs_end_date = Time.zone.local(start_year + 1, 12, 31) # this is to be manually updated each year when we want to stop users from creating new logs |
|
|
|
|
@submission_deadline = if start_year && start_year.to_i > 2022 |
|
|
|
|
Time.zone.local(start_year + 1, 6, 7) |
|
|
|
|
else |
|
|
|
|
@ -27,7 +26,7 @@ class Form
|
|
|
|
|
"sections" => sections, |
|
|
|
|
} |
|
|
|
|
@unresolved_log_redirect_page_id = "tenancy_start_date" if type == "lettings" |
|
|
|
|
@edit_end_date = Time.zone.local(start_year + 1, 11, 1) # this is to be manually updated each year when we want to stop users from editing logs |
|
|
|
|
@edit_end_date = Time.zone.local(start_year + 1, 12, 31) # this is to be manually updated each year when we want to stop users from editing logs |
|
|
|
|
else |
|
|
|
|
raise "No form definition file exists for given year".freeze unless File.exist?(form_path) |
|
|
|
|
|
|
|
|
|
@ -40,9 +39,9 @@ class Form
|
|
|
|
|
@pages = subsections.flat_map(&:pages) |
|
|
|
|
@questions = pages.flat_map(&:questions) |
|
|
|
|
@start_date = Time.iso8601(form_definition["start_date"]) |
|
|
|
|
@new_logs_end_date = Time.zone.local(@start_date.year + 1, 12, 31) |
|
|
|
|
@new_logs_end_date = Time.zone.local(@start_date.year + 1, 11, 1) |
|
|
|
|
@submission_deadline = Time.zone.local(@start_date.year + 1, 6, 9) |
|
|
|
|
@edit_end_date = Time.zone.local(@start_date.year + 1, 12, 31) |
|
|
|
|
@edit_end_date = Time.zone.local(@start_date.year + 1, 11, 1) |
|
|
|
|
@unresolved_log_redirect_page_id = form_definition["unresolved_log_redirect_page_id"] |
|
|
|
|
end |
|
|
|
|
@name = "#{start_date.year}_#{new_logs_end_date.year}_#{type}" |
|
|
|
|
@ -308,12 +307,4 @@ class Form
|
|
|
|
|
def sales_or_start_year_after_2022?(type, start_year) |
|
|
|
|
type == "sales" || (start_year && start_year.to_i > 2022) |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def update_edit_end_date(new_date) |
|
|
|
|
@edit_end_date = new_date |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
def update_new_logs_end_date(new_date) |
|
|
|
|
@new_logs_end_date = new_date |
|
|
|
|
end |
|
|
|
|
end |
|
|
|
|
|