From f99d607a690525803309e112ce9b84663ee3c90f Mon Sep 17 00:00:00 2001 From: bilal Date: Thu, 4 Jun 2020 15:00:07 +0200 Subject: [PATCH 1/2] enable admin to view task request details --- .../admin/task_requests_controller.rb | 2 +- .../task_requests/_task_request.html.erb | 1 + app/views/admin/task_requests/show.html.erb | 18 ++++++ config/routes.rb | 2 +- spec/factories/task_requests.rb | 2 +- .../admin_managing_task_requests_spec.rb | 61 +++++++++++++++++++ 6 files changed, 83 insertions(+), 3 deletions(-) create mode 100644 app/views/admin/task_requests/show.html.erb create mode 100644 spec/features/admin_managing_task_requests_spec.rb diff --git a/app/controllers/admin/task_requests_controller.rb b/app/controllers/admin/task_requests_controller.rb index 89c8ba3..ed94957 100644 --- a/app/controllers/admin/task_requests_controller.rb +++ b/app/controllers/admin/task_requests_controller.rb @@ -1,5 +1,5 @@ class Admin::TaskRequestsController < Admin::ApplicationController - before_action :set_task_request, only: [:edit, :update] + before_action :set_task_request, only: [:edit, :update, :show] def index @task_requests = task_requests.order_by_recent.paginate(page: params[:page]) diff --git a/app/views/admin/task_requests/_task_request.html.erb b/app/views/admin/task_requests/_task_request.html.erb index cdc777e..7e46150 100644 --- a/app/views/admin/task_requests/_task_request.html.erb +++ b/app/views/admin/task_requests/_task_request.html.erb @@ -18,6 +18,7 @@
<%= button_tag "Manage", class: "btn btn-light btn-sm dropdown-toggle border", data: { toggle: "dropdown", boundary: "window" }, aria: { haspopup: true, expanded: false } %>
diff --git a/app/views/admin/task_requests/show.html.erb b/app/views/admin/task_requests/show.html.erb new file mode 100644 index 0000000..147cb1c --- /dev/null +++ b/app/views/admin/task_requests/show.html.erb @@ -0,0 +1,18 @@ +
+ <%= description_list_pair_for @task_request, :description, append: ":" %> + <%= description_list_pair_for @task_request, :created_at, append: ":" %> + <%= description_list_pair_for @task_request, :deadline, append: ":" %> + <%= description_list_pair_for @task_request, :time_allowed, append: ":" %> + <%= description_list_pair_for @task_request, :additional_notes, append: ":" %> + <%= description_list_pair_for @task_request, :status, append: ":" %> +
Files:
+
+ <% if @task_request.files.present? %> + <% @task_request.files.each do |file| %> + <%= link_to file.filename, rails_blob_path(file, disposition: 'attachment'), class: "btn btn-link" %>
+ <% end %> + <% else %> + No files attached + <% end %> +
+
diff --git a/config/routes.rb b/config/routes.rb index 15c008f..b42e051 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -31,7 +31,7 @@ Rails.application.routes.draw do resources :users, only: [:index, :new, :create, :edit, :update, :destroy] do resource :masquerade, only: :create end - resources :task_requests, only: [:index, :edit, :update] + resources :task_requests, only: [:index, :edit, :update, :show] root to: "accounts#index", as: :signed_in_root end diff --git a/spec/factories/task_requests.rb b/spec/factories/task_requests.rb index 2b206d8..d9f0137 100644 --- a/spec/factories/task_requests.rb +++ b/spec/factories/task_requests.rb @@ -8,7 +8,7 @@ FactoryBot.define do status 0 trait :with_files do - files { [Rack::Test::UploadedFile.new('spec/fixtures/files/contract.pdf', 'application/pdf')] } + files { [Rack::Test::UploadedFile.new('spec/fixtures/files/AppearanceRelease.pdf', 'application/pdf')] } end end end diff --git a/spec/features/admin_managing_task_requests_spec.rb b/spec/features/admin_managing_task_requests_spec.rb new file mode 100644 index 0000000..771ac3a --- /dev/null +++ b/spec/features/admin_managing_task_requests_spec.rb @@ -0,0 +1,61 @@ +require "rails_helper" + +feature "Admin managing task requests" do + let(:current_user) { create(:user, admin: true, email: "user@test.com") } + let(:project) { create(:project, account: current_user.primary_account, name: "Test Project") } + + before do + sign_in current_user + end + + scenario "admin should see View action for task request in Manage dropdown", js: true do + create(:task_request) + visit admin_task_requests_path + + click_on 'Manage' + expect(page).to have_content 'View' + end + + scenario "admin can open detail view of task request", js: true do + task_request = create(:task_request, :with_files) + visit admin_task_requests_path + + click_on 'Manage' + click_link 'View' + switch_to_window(windows.last) + + expect(page).to have_content 'Description' + expect(page).to have_content task_request.description + + expect(page).to have_content 'Created At' + expect(page).to have_content task_request.created_at + + expect(page).to have_content 'Deadline' + expect(page).to have_content task_request.deadline + + expect(page).to have_content 'Time Allowed' + expect(page).to have_content task_request.time_allowed + + expect(page).to have_content 'Additional Notes' + expect(page).to have_content task_request.additional_notes + + expect(page).to have_content 'Status' + expect(page).to have_content task_request.status + + expect(page).to have_content 'Files' + task_request.files.each do |file| + expect(page).to have_link file.blob.filename + end + end + + scenario "no files attached label is shown if there are no files attached to the task request", js:true do + create(:task_request) + visit admin_task_requests_path + + click_on 'Manage' + click_link 'View' + switch_to_window(windows.last) + + expect(page).to have_content 'No files attached' + end +end -- 2.47.3 From ee873a2cbeafbb41fa0584cb06e04b0d9f3f81e0 Mon Sep 17 00:00:00 2001 From: bilal Date: Thu, 4 Jun 2020 15:07:44 +0200 Subject: [PATCH 2/2] restore original file name --- spec/factories/task_requests.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/factories/task_requests.rb b/spec/factories/task_requests.rb index d9f0137..2b206d8 100644 --- a/spec/factories/task_requests.rb +++ b/spec/factories/task_requests.rb @@ -8,7 +8,7 @@ FactoryBot.define do status 0 trait :with_files do - files { [Rack::Test::UploadedFile.new('spec/fixtures/files/AppearanceRelease.pdf', 'application/pdf')] } + files { [Rack::Test::UploadedFile.new('spec/fixtures/files/contract.pdf', 'application/pdf')] } end end end -- 2.47.3