Browse Source

Add a path for duplicate logs

pull/1763/head
Kat 3 years ago
parent
commit
42e8636451
  1. 1
      app/controllers/duplicate_logs_controller.rb
  2. 7
      app/controllers/form_controller.rb
  3. 13
      app/views/duplicate_logs/_banner.html.erb
  4. 13
      app/views/duplicate_logs/show.html.erb
  5. 1
      config/routes.rb
  6. 15
      spec/requests/form_controller_spec.rb

1
app/controllers/duplicate_logs_controller.rb

@ -1,3 +1,2 @@
class DuplicateLogsController < ApplicationController
include duplicate
end

7
app/controllers/form_controller.rb

@ -50,9 +50,6 @@ class FormController < ApplicationController
@interruption_page_id = URI.parse(request.headers["HTTP_REFERER"]).path.split("/").last.underscore
@interruption_page_referrer_type = referrer_from_query
end
if @log.duplicate_logs?
redirect_to
end
if @log
page_id = request.path.split("/")[-1].underscore
@page = form.get_page(page_id)
@ -157,6 +154,10 @@ private
end
def successful_redirect_path
if LettingsLog.duplicate_logs_for_organisation(current_user.organisation, @log).count.positive?
return send("#{@log.class.name.underscore}_duplicate_logs_path", @log)
end
if is_referrer_type?("check_answers")
next_page_id = form.next_page_id(@page, @log, current_user)
next_page = form.get_page(next_page_id)

13
app/views/duplicate_logs/_banner.html.erb

@ -1,13 +0,0 @@
<% if question.page.routed_to?(@log, current_user) %>
<%= govuk_panel(
classes: "app-panel--interruption",
) do %>
<p class="govuk-heading-l"><%= display_title_text(title_text, lettings_log) %></p>
<% if informative_text.present? %>
<p class="govuk-body-l"><%= display_informative_text(informative_text, lettings_log) %></p>
<% end %>
<% if question.hint_text.present? %>
<p class="govuk-body-l"><%= question.hint_text&.html_safe %></p>
<% end %>
<% end %>
<% end %>

13
app/views/duplicate_logs/show.html.erb

@ -1,5 +1,12 @@
<% content_for :title, "Check duplicate logs" %>
back button
Duplicate logs blue box
List or components
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds">
<%= govuk_panel(
classes: "app-panel--interruption",
) do %>
<p class="govuk-heading-l">These logs are duplicates</p>
<p class="govuk-body-l">These logs have the same values for the following fields. Choose one to keep or correct the answers.</p>
<% end %>
</div>
</div>

1
config/routes.rb

@ -170,6 +170,7 @@ Rails.application.routes.draw do
resources :lettings_logs, path: "/lettings-logs" do
get "delete-confirmation", to: "lettings_logs#delete_confirmation"
get "duplicate-logs", to: "duplicate_logs#show"
collection do
post "bulk-upload", to: "bulk_upload#bulk_upload"

15
spec/requests/form_controller_spec.rb

@ -532,6 +532,21 @@ RSpec.describe FormController, type: :request do
expect(whodunnit_actor).to be_a(User)
expect(whodunnit_actor.id).to eq(user.id)
end
context "and duplicate logs" do
let(:duplicate_logs) { create_list(:lettings_log, 2) }
before do
allow(LettingsLog).to receive(:duplicate_logs_for_organisation).and_return(duplicate_logs)
post "/lettings-logs/#{lettings_log.id}/#{page_id.dasherize}", params:
end
it "redirects to the duplicate logs page" do
expect(response).to redirect_to("/lettings-logs/#{lettings_log.id}/duplicate-logs")
follow_redirect!
expect(page).to have_content("These logs are duplicates")
end
end
end
context "when the question has a conditional question" do

Loading…
Cancel
Save