Browse Source

back button for bulk uploaded logs

pull/1613/head
Phil Lee 3 years ago
parent
commit
ae5dde910c
  1. 4
      app/controllers/bulk_upload_lettings_results_controller.rb
  2. 6
      app/models/log.rb
  3. 4
      app/policies/bulk_upload_policy.rb
  4. 10
      app/views/logs/edit.html.erb
  5. 2
      spec/policies/bulk_upload_policy_spec.rb
  6. 26
      spec/views/logs/edit.html.erb_spec.rb

4
app/controllers/bulk_upload_lettings_results_controller.rb

@ -10,7 +10,9 @@ class BulkUploadLettingsResultsController < ApplicationController
end end
def resume def resume
@bulk_upload = current_user.bulk_uploads.lettings.find(params[:id]) @bulk_upload = BulkUpload.lettings.find(params[:id])
authorize @bulk_upload
if @bulk_upload.lettings_logs.in_progress.count.positive? if @bulk_upload.lettings_logs.in_progress.count.positive?
set_bulk_upload_logs_filters set_bulk_upload_logs_filters

6
app/models/log.rb

@ -137,7 +137,11 @@ class Log < ApplicationRecord
end end
def creation_method def creation_method
bulk_upload_id ? "bulk upload" : "single log" bulk_uploaded? ? "bulk upload" : "single log"
end
def bulk_uploaded?
bulk_upload_id.present?
end end
private private

4
app/policies/bulk_upload_policy.rb

@ -14,6 +14,10 @@ class BulkUploadPolicy
owner? || same_org? || user.support? owner? || same_org? || user.support?
end end
def resume?
owner? || same_org? || user.support?
end
private private
def owner? def owner?

10
app/views/logs/edit.html.erb

@ -39,9 +39,15 @@
<%= render "tasklist" %> <%= render "tasklist" %>
<% if @log.completed? %> <% if @log.completed? %>
<% if @log.lettings? %> <% if @log.bulk_uploaded? %>
<% if @log.lettings? %>
<%= govuk_button_link_to "Back to uploaded logs", resume_bulk_upload_lettings_result_path(@log.bulk_upload) %>
<% else %>
<%= govuk_button_link_to "Back to uploaded logs", resume_bulk_upload_sales_result_path(@log.bulk_upload) %>
<% end %>
<% elsif @log.lettings? %>
<%= govuk_button_link_to "Back to lettings logs", lettings_logs_path %> <%= govuk_button_link_to "Back to lettings logs", lettings_logs_path %>
<% else %> <% elsif @log.sales? %>
<%= govuk_button_link_to "Back to sales logs", sales_logs_path %> <%= govuk_button_link_to "Back to sales logs", sales_logs_path %>
<% end %> <% end %>
<% end %> <% end %>

2
spec/policies/bulk_upload_policy_spec.rb

@ -3,7 +3,7 @@ require "rails_helper"
RSpec.describe BulkUploadPolicy do RSpec.describe BulkUploadPolicy do
subject(:policy) { described_class } subject(:policy) { described_class }
permissions :summary?, :show? do permissions :summary?, :show?, :resume? do
it "grants access to owner" do it "grants access to owner" do
user = build(:user) user = build(:user)
bulk_upload = build(:bulk_upload, user:) bulk_upload = build(:bulk_upload, user:)

26
spec/views/logs/edit.html.erb_spec.rb

@ -41,5 +41,31 @@ RSpec.describe "logs/edit.html.erb" do
expect(fragment).to have_link(text: "Back to sales logs", href: "/sales-logs") expect(fragment).to have_link(text: "Back to sales logs", href: "/sales-logs")
end end
end end
context "when lettings log is bulk uploaded" do
let(:bulk_upload) { create(:bulk_upload, :lettings) }
let(:log) { create(:lettings_log, :completed, bulk_upload:) }
it "has link 'Back to uploaded logs'" do
render
fragment = Capybara::Node::Simple.new(rendered)
expect(fragment).to have_link(text: "Back to uploaded logs", href: "/lettings-logs/bulk-upload-results/#{bulk_upload.id}/resume")
end
end
context "when sales log is bulk uploaded" do
let(:bulk_upload) { create(:bulk_upload, :sales) }
let(:log) { create(:sales_log, :completed, bulk_upload:) }
it "has link 'Back to uploaded logs'" do
render
fragment = Capybara::Node::Simple.new(rendered)
expect(fragment).to have_link(text: "Back to uploaded logs", href: "/sales-logs/bulk-upload-results/#{bulk_upload.id}/resume")
end
end
end end
end end

Loading…
Cancel
Save