Skip to content

Commit

Permalink
Merge pull request rubyforgood#5647 from sarvaiyanidhi/refactor_displ…
Browse files Browse the repository at this point in the history
…ay_volunteer

Refactor code of  displaying assigned volunteer next to Case Number
  • Loading branch information
compwron authored May 12, 2024
2 parents 462c77d + 4138015 commit ffcafe2
Show file tree
Hide file tree
Showing 10 changed files with 58 additions and 59 deletions.
9 changes: 0 additions & 9 deletions app/components/assigned_volunteers_component.html.erb

This file was deleted.

6 changes: 0 additions & 6 deletions app/components/assigned_volunteers_component.rb

This file was deleted.

6 changes: 4 additions & 2 deletions app/helpers/ui_helper.rb
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
module UiHelper
include VolunteerHelper

def grouped_options_for_assigning_case(volunteer)
[
[
"Not Assigned",
CasaCase
.not_assigned(@volunteer.casa_org).active
.uniq { |casa_case| casa_case.case_number }
.map { |casa_case| ["#{casa_case.case_number} - #{render AssignedVolunteersComponent.new(casa_case, current_user)}".html_safe, casa_case.id] }
.map { |casa_case| ["#{casa_case.case_number} - #{volunteer_badge(casa_case, current_user)}".html_safe, casa_case.id] }
],
[
"Assigned",
CasaCase
.actively_assigned_excluding_volunteer(@volunteer)
.uniq { |casa_case| casa_case.case_number }
.map { |casa_case| ["#{casa_case.case_number} - #{render AssignedVolunteersComponent.new(casa_case, current_user)}".html_safe, casa_case.id] }
.map { |casa_case| ["#{casa_case.case_number} - #{volunteer_badge(casa_case, current_user)}".html_safe, casa_case.id] }
]
]
end
Expand Down
13 changes: 13 additions & 0 deletions app/helpers/volunteer_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module VolunteerHelper
def volunteer_badge(casa_case, current_user)
return "" if current_user.volunteer?

badge_content = if casa_case.assigned_volunteers.present?
casa_case.assigned_volunteers.map(&:display_name).join(", ")
else
"Unassigned"
end

content_tag(:span, badge_content, class: "badge badge-pill light-bg text-black fs-6 fw-medium")
end
end
2 changes: 1 addition & 1 deletion app/views/casa_cases/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class: "btn btn-primary pull-left casa-case-button") %>
<% end %>
<p>
<h6><strong>Case number:</strong> <%= @casa_case.case_number %>
<%= render AssignedVolunteersComponent.new(@casa_case, current_user) %>
<%= volunteer_badge(@casa_case, current_user) %>
</h6>
</p>
<% if @casa_case.hearing_type %>
Expand Down
2 changes: 1 addition & 1 deletion app/views/case_groups/_form.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
<%= form.label :casa_case_ids, 'Cases' %>
<%= form.select(
:casa_case_ids,
current_organization.casa_cases.map { |casa_case| [sanitize("#{casa_case.case_number} - #{render AssignedVolunteersComponent.new(casa_case, current_user) }"), casa_case.id] },
current_organization.casa_cases.map { |casa_case| [sanitize("#{casa_case.case_number} - #{volunteer_badge(casa_case, current_user)}"), casa_case.id] },
{ include_hidden: false, autocomplete: "off" },
{ class: "form-control", multiple: true,
data: { "multiple-select-target": "select" }
Expand Down
2 changes: 1 addition & 1 deletion app/views/case_groups/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
<% case_group.casa_cases.each do |casa_case| %>
<li>
<%= link_to casa_case.case_number, casa_case_path(casa_case) %>
<%= render AssignedVolunteersComponent.new(casa_case, current_user) %>
<%= volunteer_badge(casa_case, current_user) %>
</li>
<% end %>
</ul>
Expand Down
2 changes: 1 addition & 1 deletion app/views/volunteers/_manage_cases.erb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<tr id="<%= dom_id(assignment) %>">
<td>
<%= link_to assignment.casa_case.case_number, casa_case_path(assignment.casa_case) %>
<%= render AssignedVolunteersComponent.new(assignment.casa_case, current_user) %>
<%= volunteer_badge(assignment.casa_case, current_user) %>
</td>
<td><%= assignment.casa_case.decorate.transition_aged_youth %></td>
<td>
Expand Down
38 changes: 0 additions & 38 deletions spec/components/assigned_volunteers_component_spec.rb

This file was deleted.

37 changes: 37 additions & 0 deletions spec/helpers/volunteer_helper_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# frozen_string_literal: true

require "rails_helper"

RSpec.describe VolunteerHelper, type: :helper do
let(:casa_case) { create(:casa_case) }
let(:current_user) { create(:user) }

context "when user is not a volunteer" do
it "returns the assigned volunteers' names" do
volunteer = create(:volunteer)
casa_case.volunteers << volunteer

badge_html = helper.volunteer_badge(casa_case, current_user)

expect(badge_html).to include("badge")
expect(badge_html).to include(volunteer.display_name)
end

it "returns 'Unassigned' when no volunteers are present" do
badge_html = helper.volunteer_badge(casa_case, current_user)

expect(badge_html).to include("badge")
expect(badge_html).to include("Unassigned")
end
end

context "when user is a volunteer" do
let(:current_user) { create(:volunteer) }

it "returns an empty string" do
badge_html = helper.volunteer_badge(casa_case, current_user)

expect(badge_html).to eq("")
end
end
end

0 comments on commit ffcafe2

Please sign in to comment.