diff --git a/app/controllers/delete_logs_controller.rb b/app/controllers/delete_logs_controller.rb index 8ab5a0aba..2fa35de1d 100644 --- a/app/controllers/delete_logs_controller.rb +++ b/app/controllers/delete_logs_controller.rb @@ -7,13 +7,13 @@ class DeleteLogsController < ApplicationController def delete_lettings_logs @delete_logs_form = delete_logs_form(log_type: :lettings, paths: lettings_logs_paths) - render "logs/delete_lettings_logs" + render "logs/delete_logs" end def delete_lettings_logs_with_selected_ids selected_ids = params.require(:selected_ids).split.map(&:to_i) @delete_logs_form = delete_logs_form(selected_ids:, log_type: :lettings, paths: lettings_logs_paths) - render "logs/delete_lettings_logs" + render "logs/delete_logs" end def delete_lettings_logs_confirmation @@ -28,7 +28,7 @@ class DeleteLogsController < ApplicationController if @delete_logs_form.valid? render "logs/delete_logs_confirmation" else - render "logs/delete_lettings_logs" + render "logs/delete_logs" end end @@ -44,13 +44,13 @@ class DeleteLogsController < ApplicationController def delete_sales_logs @delete_logs_form = delete_logs_form(log_type: :sales, paths: sales_logs_paths) - render "logs/delete_sales_logs" + render "logs/delete_logs" end def delete_sales_logs_with_selected_ids selected_ids = params.require(:selected_ids).split.map(&:to_i) @delete_logs_form = delete_logs_form(selected_ids:, log_type: :sales, paths: sales_logs_paths) - render "logs/delete_sales_logs" + render "logs/delete_logs" end def delete_sales_logs_confirmation @@ -65,7 +65,7 @@ class DeleteLogsController < ApplicationController if @delete_logs_form.valid? render "logs/delete_logs_confirmation" else - render "logs/delete_sales_logs" + render "logs/delete_logs" end end @@ -81,13 +81,13 @@ class DeleteLogsController < ApplicationController def delete_lettings_logs_for_organisation @delete_logs_form = delete_logs_form(log_type: :lettings, paths: lettings_logs_for_organisation_paths) - render "logs/delete_lettings_logs" + render "logs/delete_logs" end def delete_lettings_logs_for_organisation_with_selected_ids selected_ids = params.require(:selected_ids).split.map(&:to_i) @delete_logs_form = delete_logs_form(selected_ids:, log_type: :lettings, paths: lettings_logs_for_organisation_paths) - render "logs/delete_lettings_logs" + render "logs/delete_logs" end def delete_lettings_logs_for_organisation_confirmation @@ -102,7 +102,7 @@ class DeleteLogsController < ApplicationController if @delete_logs_form.valid? render "logs/delete_logs_confirmation" else - render "logs/delete_lettings_logs" + render "logs/delete_logs" end end @@ -118,13 +118,13 @@ class DeleteLogsController < ApplicationController def delete_sales_logs_for_organisation @delete_logs_form = delete_logs_form(log_type: :sales, paths: sales_logs_for_organisation_paths) - render "logs/delete_sales_logs" + render "logs/delete_logs" end def delete_sales_logs_for_organisation_with_selected_ids selected_ids = params.require(:selected_ids).split.map(&:to_i) @delete_logs_form = delete_logs_form(selected_ids:, log_type: :sales, paths: sales_logs_for_organisation_paths) - render "logs/delete_sales_logs" + render "logs/delete_logs" end def delete_sales_logs_for_organisation_confirmation @@ -139,7 +139,7 @@ class DeleteLogsController < ApplicationController if @delete_logs_form.valid? render "logs/delete_logs_confirmation" else - render "logs/delete_sales_logs" + render "logs/delete_logs" end end diff --git a/app/views/logs/delete_lettings_logs.html.erb b/app/views/logs/delete_lettings_logs.html.erb deleted file mode 100644 index b37c37773..000000000 --- a/app/views/logs/delete_lettings_logs.html.erb +++ /dev/null @@ -1,48 +0,0 @@ -<% title = "Delete logs" %> -<% content_for :title, title %> -<% content_for :before_content do %> - <%= govuk_back_link(href: :back) %> -<% end %> - -

- <%= title %> - Review the logs you want to delete -

-

You've selected <%= @delete_logs_form.log_count %> <%= "log".pluralize(@delete_logs_form.log_count) %> to delete

- -<%= form_with model: @delete_logs_form, url: @delete_logs_form.delete_confirmation_path do |f| %> - <%= f.hidden_field :search_term, value: @delete_logs_form.search_term %> - <%= f.govuk_error_summary %> - <%= govuk_table do |table| %> - <% table.head do |head| %> - <% head.row do |row| %> - <% row.cell(header: true, text: "Log ID") %> - <% row.cell(header: true, text: "Tenancy code") %> - <% row.cell(header: true, text: "Property reference") %> - <% row.cell(header: true, text: "Status") %> - <% row.cell(header: true, text: "Delete?") %> - <% end %> - <% end %> - <% table.body do |body| %> - <% f.govuk_check_boxes_fieldset :selected_ids, small: true do %> - <% @delete_logs_form.logs.each do |log| %> - <% body.row do |row| %> - <% row.cell(text: log.id) %> - <% row.cell(text: log.tenancycode) %> - <% row.cell(text: log.propcode) %> - <% row.cell(text: status_tag(log.status)) %> - <% row.cell do %> - <% f.govuk_check_box :selected_ids, log.id, - label: { text: log.id, hidden: true }, - size: "s", - checked: @delete_logs_form.selected_ids.include?(log.id) %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <%= f.govuk_submit "Continue" do %> - <%= govuk_button_link_to "Cancel", @delete_logs_form.back_to_logs_path, secondary: true %> - <% end %> -<% end %> diff --git a/app/views/logs/delete_sales_logs.html.erb b/app/views/logs/delete_logs.html.erb similarity index 69% rename from app/views/logs/delete_sales_logs.html.erb rename to app/views/logs/delete_logs.html.erb index 2e9310ea4..30bce399c 100644 --- a/app/views/logs/delete_sales_logs.html.erb +++ b/app/views/logs/delete_logs.html.erb @@ -17,8 +17,13 @@ <% table.head do |head| %> <% head.row do |row| %> <% row.cell(header: true, text: "Log ID") %> - <% row.cell(header: true, text: "Owning Organisation") %> - <% row.cell(header: true, text: "Created") %> + <% if @delete_logs_form.log_type == :lettings %> + <% row.cell(header: true, text: "Tenancy code") %> + <% row.cell(header: true, text: "Property reference") %> + <% elsif @delete_logs_form.log_type == :sales %> + <% row.cell(header: true, text: "Purchaser code") %> + <% row.cell(header: true, text: "Sale completion date") %> + <% end %> <% row.cell(header: true, text: "Status") %> <% row.cell(header: true, text: "Delete?") %> <% end %> @@ -28,8 +33,13 @@ <% @delete_logs_form.logs.each do |log| %> <% body.row do |row| %> <% row.cell(text: log.id) %> - <% row.cell(text: log.owning_organisation&.name) %> - <% row.cell(text: log.created_at&.to_formatted_s(:govuk_date)) %> + <% if @delete_logs_form.log_type == :lettings %> + <% row.cell(text: log.tenancycode) %> + <% row.cell(text: log.propcode) %> + <% elsif @delete_logs_form.log_type == :sales %> + <% row.cell(text: log.purchid) %> + <% row.cell(text: log.saledate&.to_formatted_s(:govuk_date)) %> + <% end %> <% row.cell(text: status_tag(log.status)) %> <% row.cell do %> <% f.govuk_check_box :selected_ids, log.id, diff --git a/spec/views/logs/delete_lettings_logs_spec.rb b/spec/views/logs/delete_logs_spec.rb similarity index 56% rename from spec/views/logs/delete_lettings_logs_spec.rb rename to spec/views/logs/delete_logs_spec.rb index 36fb274fe..f8a024a86 100644 --- a/spec/views/logs/delete_lettings_logs_spec.rb +++ b/spec/views/logs/delete_logs_spec.rb @@ -1,6 +1,6 @@ require "rails_helper" -RSpec.describe "logs/delete_lettings_logs.html.erb" do +RSpec.describe "logs/delete_logs.html.erb" do let(:user) { create(:user, :support, name: "Dirk Gently") } let(:lettings_log_1) { create(:lettings_log, tenancycode: "Holistic", propcode: "Detective Agency", created_by: user) } let(:lettings_logs) { [lettings_log_1] } @@ -53,18 +53,46 @@ RSpec.describe "logs/delete_lettings_logs.html.erb" do end end - it "shows the correct headers in the table" do - render - fragment = Capybara::Node::Simple.new(rendered) - headers = fragment.find_all("table thead tr th").map(&:text) - expect(headers).to eq ["Log ID", "Tenancy code", "Property reference", "Status", "Delete?"] + context "when the table contains lettings logs" do + it "shows the correct headers in the table" do + render + fragment = Capybara::Node::Simple.new(rendered) + headers = fragment.find_all("table thead tr th").map(&:text) + expect(headers).to eq ["Log ID", "Tenancy code", "Property reference", "Status", "Delete?"] + end + + it "shows the correct information in each row" do + render + fragment = Capybara::Node::Simple.new(rendered) + row_data = fragment.find_all("table tbody tr td").map(&:text)[0...-1] + expect(row_data).to eq [lettings_log_1.id.to_s, lettings_log_1.tenancycode, lettings_log_1.propcode, lettings_log_1.status.humanize.capitalize] + end end - it "shows the correct information in each row" do - render - fragment = Capybara::Node::Simple.new(rendered) - row_data = fragment.find_all("table tbody tr td").map(&:text)[0...-1] - expect(row_data).to eq [lettings_log_1.id.to_s, lettings_log_1.tenancycode, lettings_log_1.propcode, lettings_log_1.status.humanize.capitalize] + context "when the table contains sales logs" do + let(:sales_log) { create(:sales_log, purchid: "Interconnectedness", saledate: Time.zone.today, created_by: user) } + let(:sales_logs) { [sales_log] } + let(:delete_logs_form_sales) { Forms::DeleteLogsForm.new(log_type: :sales, current_user: user, **paths) } + + before do + sign_in user + allow(FilterService).to receive(:filter_logs).and_return sales_logs + assign(:delete_logs_form, delete_logs_form_sales) + end + + it "shows the correct headers in the table" do + render + fragment = Capybara::Node::Simple.new(rendered) + headers = fragment.find_all("table thead tr th").map(&:text) + expect(headers).to eq ["Log ID", "Purchaser code", "Sale completion date", "Status", "Delete?"] + end + + it "shows the correct information in each row" do + render + fragment = Capybara::Node::Simple.new(rendered) + row_data = fragment.find_all("table tbody tr td").map(&:text)[0...-1] + expect(row_data).to eq [sales_log.id.to_s, sales_log.purchid, sales_log.saledate.to_formatted_s(:govuk_date), sales_log.status.humanize.capitalize] + end end it "shows a checkbox with the correct hidden label in the final cell of each row" do