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| %> - <%= target.code %> <%= target.title %> + <%= target.code_and_title %> 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"