diff --git a/app/components/sdg/related_list_selector_component.rb b/app/components/sdg/related_list_selector_component.rb
index 2dedae2d2..17e5c922c 100644
--- a/app/components/sdg/related_list_selector_component.rb
+++ b/app/components/sdg/related_list_selector_component.rb
@@ -18,7 +18,7 @@ class SDG::RelatedListSelectorComponent < ApplicationComponent
def suggestion_tag_for(goal_or_target)
{
- tag: "#{goal_or_target.code}. #{goal_or_target.title.gsub(",", "")}",
+ tag: goal_or_target.code_and_title.gsub(",", ""),
display_text: text_for(goal_or_target),
title: goal_or_target.title,
value: goal_or_target.code
diff --git a/app/components/sdg_management/local_targets/form_component.rb b/app/components/sdg_management/local_targets/form_component.rb
index 23b6aff46..20cdbaadb 100644
--- a/app/components/sdg_management/local_targets/form_component.rb
+++ b/app/components/sdg_management/local_targets/form_component.rb
@@ -30,14 +30,10 @@ class SDGManagement::LocalTargets::FormComponent < ApplicationComponent
def target_options
grouped_targets = SDG::Goal.order(:code).map do |goal|
[
- code_and_title(goal),
- goal.targets.sort.map { |target| [code_and_title(target), target.id] }
+ goal.code_and_title,
+ goal.targets.sort.map { |target| [target.code_and_title, target.id] }
]
end
grouped_options_for_select(grouped_targets, local_target.target_id)
end
-
- def code_and_title(resource)
- "#{resource.code} #{resource.title}"
- end
end
diff --git a/app/components/sdg_management/local_targets/index_component.html.erb b/app/components/sdg_management/local_targets/index_component.html.erb
index 0512c531b..385a7400c 100644
--- a/app/components/sdg_management/local_targets/index_component.html.erb
+++ b/app/components/sdg_management/local_targets/index_component.html.erb
@@ -18,7 +18,7 @@
<% local_targets.group_by(&:target).map do |target, local_targets| %>
diff --git a/app/models/concerns/sdg/related.rb b/app/models/concerns/sdg/related.rb
index 1684b8d68..2db568171 100644
--- a/app/models/concerns/sdg/related.rb
+++ b/app/models/concerns/sdg/related.rb
@@ -41,4 +41,8 @@ module SDG::Related
end
end
end
+
+ def code_and_title
+ "#{code}. #{title}"
+ end
end
diff --git a/app/models/sdg/goal.rb b/app/models/sdg/goal.rb
index 167dc2bf4..4f190b063 100644
--- a/app/models/sdg/goal.rb
+++ b/app/models/sdg/goal.rb
@@ -21,8 +21,4 @@ class SDG::Goal < ApplicationRecord
def self.[](code)
find_by!(code: code)
end
-
- def code_and_title
- "#{code}. #{title}"
- end
end
diff --git a/spec/models/sdg/local_target_spec.rb b/spec/models/sdg/local_target_spec.rb
index 0e7121ef6..abf4eedbb 100644
--- a/spec/models/sdg/local_target_spec.rb
+++ b/spec/models/sdg/local_target_spec.rb
@@ -47,6 +47,14 @@ describe SDG::LocalTarget do
expect(build(:sdg_local_target, target: nil)).not_to be_valid
end
+ describe "#code_and_title" do
+ it "returns the code and the title" do
+ target = build(:sdg_local_target, code: "4.4.1", title: "Build a university")
+
+ expect(target.code_and_title).to eq "4.4.1. Build a university"
+ end
+ end
+
describe "#set_related_goal" do
it "before validation set related goal" do
local_target = build(:sdg_local_target, code: "1.1.1", target: SDG::Target["1.1"], goal: nil)
diff --git a/spec/models/sdg/target_spec.rb b/spec/models/sdg/target_spec.rb
index d9dbb669c..329f12f38 100644
--- a/spec/models/sdg/target_spec.rb
+++ b/spec/models/sdg/target_spec.rb
@@ -42,6 +42,14 @@ describe SDG::Target do
end
end
+ describe "#code_and_title" do
+ it "returns the code and the title" do
+ target = SDG::Target["8.A"]
+
+ expect(target.code_and_title).to start_with "8.A. Increase Aid for Trade support for developing"
+ end
+ end
+
describe "#<=>" do
let(:goal) { build(:sdg_goal, code: 10) }
let(:target) { build(:sdg_target, code: "10.19", goal: goal) }
diff --git a/spec/system/sdg_management/local_targets_spec.rb b/spec/system/sdg_management/local_targets_spec.rb
index 920ef523c..c5ca7eb2a 100644
--- a/spec/system/sdg_management/local_targets_spec.rb
+++ b/spec/system/sdg_management/local_targets_spec.rb
@@ -40,7 +40,7 @@ describe "Local Targets" do
visit new_sdg_management_local_target_path
target = SDG::Target["1.1"]
- select "#{target.code} #{target.title}", from: "Target"
+ select "1.1. #{target.title}", from: "Target"
fill_in "Code", with: "1.1.1"
fill_in "Title", with: "Local target title"
fill_in "Description", with: "Local target description"
@@ -54,7 +54,7 @@ describe "Local Targets" do
visit new_sdg_management_local_target_path
target = SDG::Target["2.3"]
- code_and_title = "#{target.code} #{target.title}"
+ code_and_title = "2.3. #{target.title}"
select code_and_title, from: "Target"
click_button "Create local target"