Skip to content

Commit 4a41bd2

Browse files
committed
Show a banner to admin users when there are requested borrow policy approvals
1 parent 9840fd0 commit 4a41bd2

5 files changed

Lines changed: 96 additions & 22 deletions

File tree

app/views/admin/borrow_policies/index.html.erb

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,37 @@
33
<% end %>
44

55
<% if @borrow_policies.any? %>
6-
<div class="responsive-table eight-columns">
7-
<%= tag.div "Name", class: "responsive-table-header" %>
8-
<%= tag.div "Duration", class: "responsive-table-header" %>
9-
<%= tag.div "Fine", class: "responsive-table-header" %>
10-
<%= tag.div "Fine Period", class: "responsive-table-header" %>
11-
<%= tag.div "Uniquely Numbered", class: "responsive-table-header" %>
12-
<%= tag.div "Consumable", class: "responsive-table-header" %>
13-
<%= tag.div "Default", class: "responsive-table-header" %>
14-
<%= tag.div "Requires Approval", class: "responsive-table-header" %>
6+
<table class="table">
7+
<thead>
8+
<th>Name</th>
9+
<th>Duration</th>
10+
<th>Fine</th>
11+
<th>Fine Period</th>
12+
<th>Uniquely Numbered</th>
13+
<th>Consumable</th>
14+
<th>Default</th>
15+
<th>Requires Approval</th>
16+
<th>Requested Approvals</th>
17+
</thead>
18+
<tbody>
19+
<% @borrow_policies.each do |borrow_policy| %>
20+
<tr>
21+
<td>
22+
<%= link_to "#{borrow_policy.code} #{borrow_policy.name}", admin_borrow_policy_path(borrow_policy) %>
23+
</td>
1524

16-
<% @borrow_policies.each do |borrow_policy| %>
17-
<%= tag.div class: "responsive-table-cell" do %>
18-
<%= link_to "#{borrow_policy.code} #{borrow_policy.name}", admin_borrow_policy_path(borrow_policy) %>
25+
<td><%= borrow_policy.duration %></td>
26+
<td><%= borrow_policy.fine %></td>
27+
<td><%= borrow_policy.fine_period %></td>
28+
<td><%= borrow_policy.uniquely_numbered %></td>
29+
<td><%= borrow_policy.consumable %></td>
30+
<td><%= borrow_policy.default %></td>
31+
<td><%= borrow_policy.requires_approval %></td>
32+
<td><%= link_to borrow_policy.borrow_policy_approvals.requested.count, admin_borrow_policy_borrow_policy_approvals_path(borrow_policy) %></td>
33+
</tr>
1934
<% end %>
20-
<%= tag.div borrow_policy.duration, class: "responsive-table-cell" %>
21-
<%= tag.div borrow_policy.fine, class: "responsive-table-cell" %>
22-
<%= tag.div borrow_policy.fine_period, class: "responsive-table-cell" %>
23-
<%= tag.div borrow_policy.uniquely_numbered, class: "responsive-table-cell" %>
24-
<%= tag.div borrow_policy.consumable, class: "responsive-table-cell" %>
25-
<%= tag.div borrow_policy.default, class: "responsive-table-cell" %>
26-
<%= tag.div borrow_policy.requires_approval, class: "responsive-table-cell" %>
27-
<% end %>
28-
</div>
29-
35+
</tbody>
36+
</table>
3037
<% else %>
3138
<%= empty_state "There are no borrow policies." %>
3239
<% end %>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<% requested_borrow_policy_approvals_count = BorrowPolicyApproval.requested.count %>
2+
<% if requested_borrow_policy_approvals_count > 0 %>
3+
<div class="app-banner">
4+
<div class="header-header">
5+
<div class="container grid-lg">
6+
<p>
7+
<%= link_to admin_borrow_policies_path do %>
8+
There <%= "is".pluralize requested_borrow_policy_approvals_count %> <%= pluralize requested_borrow_policy_approvals_count, "requested borrow policy approval" %>.
9+
<% end %>
10+
</p>
11+
</div>
12+
</div>
13+
</div>
14+
<% end %>

app/views/layouts/admin.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@
229229
<% end %>
230230
231231
<%= render partial: "layouts/unpulled_appointments_for_today_banner" %>
232+
<%= render partial: "layouts/requested_borrow_policy_approvals_banner" %>
232233
233234
<% if content_for? :header %>
234235
<div class="app-header">

test/system/admin/borrow_policies_test.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,24 @@ class BorrowPoliciesTest < ApplicationSystemTestCase
77
sign_in_as_admin
88
end
99

10+
test "viewing borrow policies" do
11+
borrow_policies = create_list(:borrow_policy, 3)
12+
13+
create_list(:borrow_policy_approval, 1, :approved, borrow_policy: borrow_policies.first)
14+
create_list(:borrow_policy_approval, 2, :requested, borrow_policy: borrow_policies.first)
15+
create_list(:borrow_policy_approval, 3, :requested, borrow_policy: borrow_policies.second)
16+
create_list(:borrow_policy_approval, 1, :rejected, borrow_policy: borrow_policies.second)
17+
18+
visit admin_borrow_policies_path
19+
20+
borrow_policies.each do |borrow_policy|
21+
assert_text borrow_policy.name
22+
end
23+
24+
assert_text "2"
25+
assert_text "3"
26+
end
27+
1028
test "updating a borrow_policy" do
1129
audited_as_admin do
1230
@borrow_policy = create(:borrow_policy)
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
require "application_system_test_case"
2+
3+
module Admin
4+
class BorrowPolicyApprovalsNotificationsTest < ApplicationSystemTestCase
5+
include AdminHelper
6+
7+
setup do
8+
sign_in_as_admin
9+
end
10+
11+
test "the requested approvals notification message is not displayed when there aren't any requested approvals" do
12+
create(:borrow_policy_approval, :approved)
13+
create(:borrow_policy_approval, :rejected)
14+
create(:borrow_policy_approval, :revoked)
15+
16+
# the specific path doesn't matter as long as it's in the admin interface
17+
visit admin_organizations_path
18+
19+
refute_text "requested borrow policy approvals"
20+
end
21+
22+
test "the requested approvals notification message is displayed when there are requested approvals" do
23+
create(:borrow_policy_approval, :approved)
24+
create(:borrow_policy_approval, :rejected)
25+
create(:borrow_policy_approval, :revoked)
26+
create_list(:borrow_policy_approval, 2, :requested)
27+
28+
# the specific path doesn't matter as long as it's in the admin interface
29+
visit admin_organizations_path
30+
31+
assert_text "requested borrow policy approvals"
32+
end
33+
end
34+
end

0 commit comments

Comments
 (0)