Browse Source

Add next_unresolved_page_id to pages

pull/1035/head
Kat 4 years ago
parent
commit
31d6614484
  1. 51
      app/models/form.rb
  2. 1
      app/models/form/lettings/pages/location.rb
  3. 1
      app/models/form/lettings/pages/scheme.rb
  4. 1
      app/models/form/lettings/pages/tenancy_start_date.rb
  5. 3
      app/models/form/page.rb

51
app/models/form.rb

@ -56,40 +56,31 @@ class Form
end end
def next_page(page, log, current_user) def next_page(page, log, current_user)
page_ids = subsection_for_page(page).pages.map(&:id) if log.unresolved
page_index = page_ids.index(page.id) page.next_unresolved_page_id || :check_answers
page_id = if page.id.include?("value_check") && log[page.questions[0].id] == 1 && page.routed_to?(log, current_user) else
previous_page(page_ids, page_index, log, current_user) page_ids = subsection_for_page(page).pages.map(&:id)
else page_index = page_ids.index(page.id)
page_ids[page_index + 1] page_id = if page.id.include?("value_check") && log[page.questions[0].id] == 1 && page.routed_to?(log, current_user)
end previous_page(page_ids, page_index, log, current_user)
nxt_page = get_page(page_id) else
page_ids[page_index + 1]
return :check_answers if nxt_page.nil? end
return nxt_page.id if nxt_page.routed_to?(log, current_user) nxt_page = get_page(page_id)
next_page(nxt_page, log, current_user) return :check_answers if nxt_page.nil?
return nxt_page.id if nxt_page.routed_to?(log, current_user)
next_page(nxt_page, log, current_user)
end
end end
def next_page_redirect_path(page, log, current_user) def next_page_redirect_path(page, log, current_user)
if log.unresolved nxt_page = next_page(page, log, current_user)
case page.id if nxt_page == :check_answers
when "tenancy_start_date" "#{type}_log_#{subsection_for_page(page).id}_check_answers_path"
"lettings_log_scheme_path"
when "scheme"
"lettings_log_location_path"
when "location"
"#{type}_log_#{subsection_for_page(page).id}_check_answers_path"
else
"lettings_log_tenancy_start_date_path"
end
else else
nxt_page = next_page(page, log, current_user) "#{type}_log_#{nxt_page}_path"
if nxt_page == :check_answers
"#{type}_log_#{subsection_for_page(page).id}_check_answers_path"
else
"#{type}_log_#{nxt_page}_path"
end
end end
end end

1
app/models/form/lettings/pages/location.rb

@ -7,6 +7,7 @@ class Form::Lettings::Pages::Location < ::Form::Page
"needstype" => 2, "needstype" => 2,
"scheme_has_multiple_locations?" => true, "scheme_has_multiple_locations?" => true,
}] }]
@next_unresolved_page_id = :check_answers
end end
def questions def questions

1
app/models/form/lettings/pages/scheme.rb

@ -6,6 +6,7 @@ class Form::Lettings::Pages::Scheme < ::Form::Page
@depends_on = [{ @depends_on = [{
"needstype" => 2, "needstype" => 2,
}] }]
@next_unresolved_page_id = "location"
end end
def questions def questions

1
app/models/form/lettings/pages/tenancy_start_date.rb

@ -4,6 +4,7 @@ class Form::Lettings::Pages::TenancyStartDate < ::Form::Page
@id = "tenancy_start_date" @id = "tenancy_start_date"
@description = "" @description = ""
@subsection = subsection @subsection = subsection
@next_unresolved_page_id = "scheme"
end end
def questions def questions

3
app/models/form/page.rb

@ -1,6 +1,6 @@
class Form::Page class Form::Page
attr_accessor :id, :header, :header_partial, :description, :questions, :depends_on, :title_text, attr_accessor :id, :header, :header_partial, :description, :questions, :depends_on, :title_text,
:informative_text, :subsection, :hide_subsection_label :informative_text, :subsection, :hide_subsection_label, :next_unresolved_page_id
def initialize(id, hsh, subsection) def initialize(id, hsh, subsection)
@id = id @id = id
@ -14,6 +14,7 @@ class Form::Page
@title_text = hsh["title_text"] @title_text = hsh["title_text"]
@informative_text = hsh["informative_text"] @informative_text = hsh["informative_text"]
@hide_subsection_label = hsh["hide_subsection_label"] @hide_subsection_label = hsh["hide_subsection_label"]
@next_unresolved_page_id = hsh["next_unresolved_page_id"]
end end
end end

Loading…
Cancel
Save