Browse Source

Update change button routing

pull/1752/head
Kat 3 years ago
parent
commit
ba9d5aa57e
  1. 4
      app/controllers/duplicate_logs_controller.rb
  2. 13
      app/controllers/form_controller.rb
  3. 12
      app/helpers/duplicate_logs_helper.rb
  4. 2
      app/views/duplicate_logs/_duplicate_log_check_answers.erb
  5. 2
      app/views/duplicate_logs/show.erb
  6. 10
      spec/features/lettings_log_spec.rb
  7. 10
      spec/features/sales_log_spec.rb

4
app/controllers/duplicate_logs_controller.rb

@ -62,7 +62,9 @@ private
end
def find_original_log_id
return unless @log
query_params = URI.parse(request.url).query
@original_log_id = CGI.parse(query_params)["original_log_id"][0].to_i if query_params
@original_log_id = query_params.present? ? CGI.parse(query_params)["original_log_id"][0]&.to_i : @log.id
end
end

13
app/controllers/form_controller.rb

@ -146,6 +146,17 @@ private
parsed_params["referrer"][0]
end
def original_duplicate_log_id_from_query
query_params = URI.parse(request.url).query
return unless query_params
parsed_params = CGI.parse(query_params)
return unless parsed_params["original_log_id"]
parsed_params["original_log_id"][0]
end
def previous_interruption_screen_page_id
params[@log.model_name.param_key]["interruption_page_id"]
end
@ -177,7 +188,7 @@ private
end
end
if previous_interruption_screen_page_id.present?
return send("#{@log.class.name.underscore}_#{previous_interruption_screen_page_id}_path", @log, { referrer: previous_interruption_screen_referrer }.compact)
return send("#{@log.class.name.underscore}_#{previous_interruption_screen_page_id}_path", @log, { referrer: previous_interruption_screen_referrer, original_log_id: original_duplicate_log_id_from_query }.compact)
end
redirect_path = form.next_page_redirect_path(@page, @log, current_user)

12
app/helpers/duplicate_logs_helper.rb

@ -1,17 +1,21 @@
module DuplicateLogsHelper
include GovukLinkHelper
def duplicate_logs_continue_button(all_duplicates, duplicate_log, original_log)
def duplicate_logs_continue_button(all_duplicates, duplicate_log, original_log_id)
if all_duplicates.count > 1
return govuk_button_link_to "Keep this log and delete duplicates", send("#{duplicate_log.class.name.underscore}_delete_duplicates_path", duplicate_log, original_log_id: original_log.id)
return govuk_button_link_to "Keep this log and delete duplicates", send("#{duplicate_log.class.name.underscore}_delete_duplicates_path", duplicate_log, original_log_id:)
end
if original_log.id == duplicate_log.id
govuk_button_link_to "Continue editing Log #{duplicate_log.id}", send("#{duplicate_log.class.name.underscore}_path", duplicate_log)
if original_log_id == duplicate_log.id
govuk_button_link_to "Back to Log #{duplicate_log.id}", send("#{duplicate_log.class.name.underscore}_path", duplicate_log)
else
return govuk_button_link_to "Back to lettings logs", lettings_logs_path if duplicate_log.lettings?
govuk_button_link_to "Back to sales logs", sales_logs_path
end
end
def duplicate_logs_action_href(log, page_id, original_log_id)
send("#{log.model_name.param_key}_#{page_id}_path", log, referrer: "interruption_screen", original_log_id:)
end
end

2
app/views/duplicate_logs/_duplicate_log_check_answers.erb

@ -29,7 +29,7 @@
<% row.action(
text: question.action_text(@log),
href: action_href(@log, question.page.id),
href: duplicate_logs_action_href(@log, question.page.id, @original_log_id),
visually_hidden_text: question.check_answer_label.to_s.downcase,
) %>
<% end %>

2
app/views/duplicate_logs/show.erb

@ -13,7 +13,7 @@
<% @all_duplicates.each_with_index do |log, index| %>
<%= render partial: "duplicate_log", locals: { log: log } %>
<%= render partial: "duplicate_log_check_answers", locals: { log: log } %>
<%= duplicate_logs_continue_button(@all_duplicates, log, @log) %>
<%= duplicate_logs_continue_button(@all_duplicates, log, @original_log_id) %>
<% if index < @all_duplicates.count - 1 %>
<hr class="govuk-section-break govuk-section-break--visible govuk-section-break--m">
<% end %>

10
spec/features/lettings_log_spec.rb

@ -418,7 +418,11 @@ RSpec.describe "Lettings Log Features" do
expect(page).to have_current_path("/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}")
expect(page).not_to have_content("These logs are duplicates")
expect(page).not_to have_link("Keep this log and delete duplicates")
expect(page).to have_link("Continue editing Log #{lettings_log.id}", href: "/lettings-logs/#{lettings_log.id}")
expect(page).to have_link("Back to Log #{lettings_log.id}", href: "/lettings-logs/#{lettings_log.id}")
click_link("Change", href: "/lettings-logs/#{lettings_log.id}/tenant-code?original_log_id=#{lettings_log.id}&referrer=interruption_screen")
click_button("Save and continue")
expect(page).to have_current_path("/lettings-logs/#{lettings_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}")
expect(page).to have_link("Back to Log #{lettings_log.id}", href: "/lettings-logs/#{lettings_log.id}")
end
it "allows keeping the duplicate log and deleting the original one" do
@ -434,6 +438,10 @@ RSpec.describe "Lettings Log Features" do
expect(page).not_to have_content("These logs are duplicates")
expect(page).not_to have_link("Keep this log and delete duplicates")
expect(page).to have_link("Back to lettings logs", href: "/lettings-logs")
click_link("Change", href: "/lettings-logs/#{duplicate_log.id}/tenant-code?original_log_id=#{lettings_log.id}&referrer=interruption_screen")
click_button("Save and continue")
expect(page).to have_current_path("/lettings-logs/#{duplicate_log.id}/duplicate-logs?original_log_id=#{lettings_log.id}")
expect(page).to have_link("Back to lettings logs", href: "/lettings-logs")
end
end
end

10
spec/features/sales_log_spec.rb

@ -169,7 +169,11 @@ RSpec.describe "Sales Log Features" do
expect(page).to have_current_path("/sales-logs/#{sales_log.id}/duplicate-logs?original_log_id=#{sales_log.id}")
expect(page).not_to have_content("These logs are duplicates")
expect(page).not_to have_link("Keep this log and delete duplicates")
expect(page).to have_link("Continue editing Log #{sales_log.id}", href: "/sales-logs/#{sales_log.id}")
expect(page).to have_link("Back to Log #{sales_log.id}", href: "/sales-logs/#{sales_log.id}")
click_link("Change", href: "/sales-logs/#{sales_log.id}/purchaser-code?original_log_id=#{sales_log.id}&referrer=interruption_screen")
click_button("Save and continue")
expect(page).to have_current_path("/sales-logs/#{sales_log.id}/duplicate-logs?original_log_id=#{sales_log.id}")
expect(page).to have_link("Back to Log #{sales_log.id}", href: "/sales-logs/#{sales_log.id}")
end
it "allows keeping the duplicate log and deleting the original one" do
@ -185,6 +189,10 @@ RSpec.describe "Sales Log Features" do
expect(page).not_to have_content("These logs are duplicates")
expect(page).not_to have_link("Keep this log and delete duplicates")
expect(page).to have_link("Back to sales logs", href: "/sales-logs")
click_link("Change", href: "/sales-logs/#{duplicate_log.id}/purchaser-code?original_log_id=#{sales_log.id}&referrer=interruption_screen")
click_button("Save and continue")
expect(page).to have_current_path("/sales-logs/#{duplicate_log.id}/duplicate-logs?original_log_id=#{sales_log.id}")
expect(page).to have_link("Back to sales logs", href: "/sales-logs")
end
end
end

Loading…
Cancel
Save