Browse Source

Add delete duplicates page

pull/1752/head
Kat 3 years ago
parent
commit
44574cea55
  1. 6
      app/controllers/lettings_logs_controller.rb
  2. 33
      app/views/logs/delete_duplicates.html.erb
  3. 1
      config/routes.rb
  4. 35
      spec/requests/lettings_logs_controller_spec.rb

6
app/controllers/lettings_logs_controller.rb

@ -88,6 +88,12 @@ class LettingsLogsController < LogsController
render "logs/delete_confirmation" render "logs/delete_confirmation"
end end
def delete_duplicates
@log = LettingsLog.visible.find(params[:lettings_log_id])
@duplicate_logs = LettingsLog.duplicate_logs_for_organisation(current_user.organisation, @log)
render "logs/delete_duplicates"
end
def download_csv def download_csv
unpaginated_filtered_logs = filter_manager.filtered_logs(current_user.lettings_logs, search_term, session_filters) unpaginated_filtered_logs = filter_manager.filtered_logs(current_user.lettings_logs, search_term, session_filters)

33
app/views/logs/delete_duplicates.html.erb

@ -0,0 +1,33 @@
<% content_for :before_content do %>
<% content_for :title, "Are you sure you want to delete this duplicate log?" %>
<%= govuk_back_link href: @log.lettings? ? lettings_logs_path(@log) : sales_logs_path(@log) %>
<% end %>
<div class="govuk-grid-row">
<div class="govuk-grid-column-two-thirds-from-desktop">
<h1 class="govuk-heading-xl">
<%= content_for(:title) %>
</h1>
<%= govuk_warning_text(text: "You will not be able to undo this action.") %>
<p class="govuk-body">
This log will be deleted:
</p>
<% @duplicate_logs.each do |duplicate_log| %>
<%= govuk_link_to "Log #{duplicate_log.id}", lettings_log_path(duplicate_log)%>
<% end %>
<div class="govuk-button-group">
<%= govuk_button_to(
"Delete this log"
) %>
<%= govuk_button_link_to(
"Cancel",
@log.lettings? ? lettings_log_path(@log) : sales_log_path(@log),
secondary: true,
) %>
</div>
</div>
</div>

1
config/routes.rb

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

35
spec/requests/lettings_logs_controller_spec.rb

@ -1667,4 +1667,39 @@ RSpec.describe LettingsLogsController, type: :request do
end end
end end
end end
describe "GET delete-duplicates" do
let(:headers) { { "Accept" => "text/html" } }
let(:page) { Capybara::Node::Simple.new(response.body) }
let(:user) { create(:user, :data_coordinator) }
let!(:lettings_log) do
create(:lettings_log, :completed, owning_organisation: user.organisation)
end
let(:id) { lettings_log.id }
let!(:duplicate_log) do
duplicate = lettings_log.dup
duplicate.id = nil
duplicate.save!
duplicate
end
let(:request) { get "/lettings-logs/#{id}/delete-duplicates", headers: }
before do
allow(user).to receive(:need_two_factor_authentication?).and_return(false)
sign_in user
end
context "when there is 1 duplicate log being deleted" do
it "renders page" do
request
expect(response).to have_http_status(:ok)
expect(page).to have_content("Are you sure you want to delete this duplicate log?")
expect(page).to have_button(text: "Delete this log")
expect(page).to have_link(text: "Log #{duplicate_log.id}", href: lettings_log_path(duplicate_log.id))
expect(page).not_to have_link(text: "Log #{id}", href: lettings_log_path(id))
expect(page).to have_link(text: "Cancel", href: lettings_log_path(id)) # update with correct path when known
end
end
end
end end

Loading…
Cancel
Save