From 7e7940a6f0c66344e93aa27d526c74815e3f0e53 Mon Sep 17 00:00:00 2001
From: Nidhi Sarvaiya
Date: Fri, 26 Apr 2024 17:44:29 -0400
Subject: [PATCH 1/3] Refactored Assgined Volunteer display code from
ViewComponent to Helper
---
.../assigned_volunteers_component.html.erb | 9 -----
.../assigned_volunteers_component.rb | 6 ---
app/helpers/ui_helper.rb | 6 ++-
app/helpers/volunteer_helper.rb | 13 +++++++
app/models/learning_hour.rb | 1 -
app/views/casa_cases/show.html.erb | 2 +-
app/views/case_groups/_form.html.erb | 2 +-
app/views/case_groups/index.html.erb | 2 +-
app/views/volunteers/_manage_cases.erb | 2 +-
.../assigned_volunteers_component_spec.rb | 38 -------------------
spec/helpers/volunteer_helper_spec.rb | 37 ++++++++++++++++++
11 files changed, 58 insertions(+), 60 deletions(-)
delete mode 100644 app/components/assigned_volunteers_component.html.erb
delete mode 100644 app/components/assigned_volunteers_component.rb
create mode 100644 app/helpers/volunteer_helper.rb
delete mode 100644 spec/components/assigned_volunteers_component_spec.rb
create mode 100644 spec/helpers/volunteer_helper_spec.rb
diff --git a/app/components/assigned_volunteers_component.html.erb b/app/components/assigned_volunteers_component.html.erb
deleted file mode 100644
index 15e6abf62c..0000000000
--- a/app/components/assigned_volunteers_component.html.erb
+++ /dev/null
@@ -1,9 +0,0 @@
-<% unless @current_user.volunteer? %>
-
- <% if @casa_case.assigned_volunteers.present? %>
- <%= @casa_case.assigned_volunteers.map(&:display_name).join(", ") %>
- <% else %>
- Unassigned
- <% end %>
-
-<% end %>
diff --git a/app/components/assigned_volunteers_component.rb b/app/components/assigned_volunteers_component.rb
deleted file mode 100644
index 2bfe283fef..0000000000
--- a/app/components/assigned_volunteers_component.rb
+++ /dev/null
@@ -1,6 +0,0 @@
-class AssignedVolunteersComponent < ViewComponent::Base
- def initialize(casa_case, current_user)
- @casa_case = casa_case
- @current_user = current_user
- end
-end
diff --git a/app/helpers/ui_helper.rb b/app/helpers/ui_helper.rb
index 9573d91d9e..ece7e79bb4 100644
--- a/app/helpers/ui_helper.rb
+++ b/app/helpers/ui_helper.rb
@@ -1,4 +1,6 @@
module UiHelper
+ include VolunteerHelper
+
def grouped_options_for_assigning_case(volunteer)
[
[
@@ -6,14 +8,14 @@ def grouped_options_for_assigning_case(volunteer)
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
diff --git a/app/helpers/volunteer_helper.rb b/app/helpers/volunteer_helper.rb
new file mode 100644
index 0000000000..5627db793f
--- /dev/null
+++ b/app/helpers/volunteer_helper.rb
@@ -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
\ No newline at end of file
diff --git a/app/models/learning_hour.rb b/app/models/learning_hour.rb
index a3405354c1..e22242693f 100644
--- a/app/models/learning_hour.rb
+++ b/app/models/learning_hour.rb
@@ -52,7 +52,6 @@ def user_org_learning_topic_enable?
# id :bigint not null, primary key
# duration_hours :integer not null
# duration_minutes :integer not null
-# learning_type :integer default(5)
# name :string not null
# occurred_at :datetime not null
# created_at :datetime not null
diff --git a/app/views/casa_cases/show.html.erb b/app/views/casa_cases/show.html.erb
index 9a7cdb1488..2ecda6293c 100644
--- a/app/views/casa_cases/show.html.erb
+++ b/app/views/casa_cases/show.html.erb
@@ -37,7 +37,7 @@ class: "btn btn-primary pull-left casa-case-button") %>
<% end %>
Case number: <%= @casa_case.case_number %>
- <%= render AssignedVolunteersComponent.new(@casa_case, current_user) %>
+ <%= volunteer_badge(@casa_case, current_user) %>
<% if @casa_case.hearing_type %>
diff --git a/app/views/case_groups/_form.html.erb b/app/views/case_groups/_form.html.erb
index dd746ab37a..125957f11f 100644
--- a/app/views/case_groups/_form.html.erb
+++ b/app/views/case_groups/_form.html.erb
@@ -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" }
diff --git a/app/views/case_groups/index.html.erb b/app/views/case_groups/index.html.erb
index 7c4bd3df90..dc4949992c 100644
--- a/app/views/case_groups/index.html.erb
+++ b/app/views/case_groups/index.html.erb
@@ -42,7 +42,7 @@
<% case_group.casa_cases.each do |casa_case| %>
<%= link_to casa_case.case_number, casa_case_path(casa_case) %>
- <%= render AssignedVolunteersComponent.new(casa_case, current_user) %>
+ <%= volunteer_badge(casa_case, current_user) %>
<% end %>
diff --git a/app/views/volunteers/_manage_cases.erb b/app/views/volunteers/_manage_cases.erb
index c448921af6..63810dd28a 100644
--- a/app/views/volunteers/_manage_cases.erb
+++ b/app/views/volunteers/_manage_cases.erb
@@ -20,7 +20,7 @@
<%= 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) %>
|
<%= assignment.casa_case.decorate.transition_aged_youth %> |
diff --git a/spec/components/assigned_volunteers_component_spec.rb b/spec/components/assigned_volunteers_component_spec.rb
deleted file mode 100644
index fa5079dfc9..0000000000
--- a/spec/components/assigned_volunteers_component_spec.rb
+++ /dev/null
@@ -1,38 +0,0 @@
-# frozen_string_literal: true
-
-require "rails_helper"
-
-RSpec.describe AssignedVolunteersComponent, type: :component do
- let(:casa_case) { create(:casa_case) }
- let(:current_user) { create(:user) }
-
- context "when user is not a volunteer" do
- it "renders assigned volunteers" do
- volunteer = create(:volunteer)
- casa_case.volunteers << volunteer
-
- component = described_class.new(casa_case, current_user)
- render_inline(component)
-
- expect(page).to have_selector("span.badge", text: volunteer.display_name)
- end
-
- it "renders 'Unassigned' when no volunteers present" do
- component = described_class.new(casa_case, current_user)
- render_inline(component)
-
- expect(page).to have_selector("span.badge", text: "Unassigned")
- end
- end
-
- context "when user is a volunteer" do
- let(:current_user) { create(:volunteer) }
-
- it "does not render badge" do
- component = described_class.new(casa_case, current_user)
- render_inline(component)
-
- expect(page).not_to have_selector("span.badge")
- end
- end
-end
diff --git a/spec/helpers/volunteer_helper_spec.rb b/spec/helpers/volunteer_helper_spec.rb
new file mode 100644
index 0000000000..5eae5bfd85
--- /dev/null
+++ b/spec/helpers/volunteer_helper_spec.rb
@@ -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
From 0b7f1b04202da8bce4cc4fce85b709d592d7cea6 Mon Sep 17 00:00:00 2001
From: Nidhi Sarvaiya
Date: Fri, 26 Apr 2024 18:10:00 -0400
Subject: [PATCH 2/3] Lint fix
---
app/helpers/volunteer_helper.rb | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/app/helpers/volunteer_helper.rb b/app/helpers/volunteer_helper.rb
index 5627db793f..c4e0d70f9d 100644
--- a/app/helpers/volunteer_helper.rb
+++ b/app/helpers/volunteer_helper.rb
@@ -1,13 +1,13 @@
module VolunteerHelper
def volunteer_badge(casa_case, current_user)
- return '' if current_user.volunteer?
+ return "" if current_user.volunteer?
badge_content = if casa_case.assigned_volunteers.present?
- casa_case.assigned_volunteers.map(&:display_name).join(", ")
- else
- 'Unassigned'
- end
+ 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')
+ content_tag(:span, badge_content, class: "badge badge-pill light-bg text-black fs-6 fw-medium")
end
-end
\ No newline at end of file
+end
From 41380154143dd4a25eebdc084d4a0c64f66fc78b Mon Sep 17 00:00:00 2001
From: Nidhi Sarvaiya
Date: Mon, 6 May 2024 17:44:56 -0400
Subject: [PATCH 3/3] Removed unwanted updated file
---
app/models/learning_hour.rb | 1 +
1 file changed, 1 insertion(+)
diff --git a/app/models/learning_hour.rb b/app/models/learning_hour.rb
index e22242693f..a3405354c1 100644
--- a/app/models/learning_hour.rb
+++ b/app/models/learning_hour.rb
@@ -52,6 +52,7 @@ def user_org_learning_topic_enable?
# id :bigint not null, primary key
# duration_hours :integer not null
# duration_minutes :integer not null
+# learning_type :integer default(5)
# name :string not null
# occurred_at :datetime not null
# created_at :datetime not null
|