Extract method to get SDG code with title
This commit is contained in:
@@ -18,7 +18,7 @@ class SDG::RelatedListSelectorComponent < ApplicationComponent
|
|||||||
|
|
||||||
def suggestion_tag_for(goal_or_target)
|
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),
|
display_text: text_for(goal_or_target),
|
||||||
title: goal_or_target.title,
|
title: goal_or_target.title,
|
||||||
value: goal_or_target.code
|
value: goal_or_target.code
|
||||||
|
|||||||
@@ -30,14 +30,10 @@ class SDGManagement::LocalTargets::FormComponent < ApplicationComponent
|
|||||||
def target_options
|
def target_options
|
||||||
grouped_targets = SDG::Goal.order(:code).map do |goal|
|
grouped_targets = SDG::Goal.order(:code).map do |goal|
|
||||||
[
|
[
|
||||||
code_and_title(goal),
|
goal.code_and_title,
|
||||||
goal.targets.sort.map { |target| [code_and_title(target), target.id] }
|
goal.targets.sort.map { |target| [target.code_and_title, target.id] }
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
grouped_options_for_select(grouped_targets, local_target.target_id)
|
grouped_options_for_select(grouped_targets, local_target.target_id)
|
||||||
end
|
end
|
||||||
|
|
||||||
def code_and_title(resource)
|
|
||||||
"#{resource.code} #{resource.title}"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<% local_targets.group_by(&:target).map do |target, local_targets| %>
|
<% local_targets.group_by(&:target).map do |target, local_targets| %>
|
||||||
<tr class="target-header">
|
<tr class="target-header">
|
||||||
<th id="<%= header_id(target) %>" colspan="3" scope="colgroup">
|
<th id="<%= header_id(target) %>" colspan="3" scope="colgroup">
|
||||||
<%= target.code %> <%= target.title %>
|
<%= target.code_and_title %>
|
||||||
</th>
|
</th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
@@ -41,4 +41,8 @@ module SDG::Related
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def code_and_title
|
||||||
|
"#{code}. #{title}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -21,8 +21,4 @@ class SDG::Goal < ApplicationRecord
|
|||||||
def self.[](code)
|
def self.[](code)
|
||||||
find_by!(code: code)
|
find_by!(code: code)
|
||||||
end
|
end
|
||||||
|
|
||||||
def code_and_title
|
|
||||||
"#{code}. #{title}"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -47,6 +47,14 @@ describe SDG::LocalTarget do
|
|||||||
expect(build(:sdg_local_target, target: nil)).not_to be_valid
|
expect(build(:sdg_local_target, target: nil)).not_to be_valid
|
||||||
end
|
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
|
describe "#set_related_goal" do
|
||||||
it "before validation 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)
|
local_target = build(:sdg_local_target, code: "1.1.1", target: SDG::Target["1.1"], goal: nil)
|
||||||
|
|||||||
@@ -42,6 +42,14 @@ describe SDG::Target do
|
|||||||
end
|
end
|
||||||
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
|
describe "#<=>" do
|
||||||
let(:goal) { build(:sdg_goal, code: 10) }
|
let(:goal) { build(:sdg_goal, code: 10) }
|
||||||
let(:target) { build(:sdg_target, code: "10.19", goal: goal) }
|
let(:target) { build(:sdg_target, code: "10.19", goal: goal) }
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ describe "Local Targets" do
|
|||||||
visit new_sdg_management_local_target_path
|
visit new_sdg_management_local_target_path
|
||||||
|
|
||||||
target = SDG::Target["1.1"]
|
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 "Code", with: "1.1.1"
|
||||||
fill_in "Title", with: "Local target title"
|
fill_in "Title", with: "Local target title"
|
||||||
fill_in "Description", with: "Local target description"
|
fill_in "Description", with: "Local target description"
|
||||||
@@ -54,7 +54,7 @@ describe "Local Targets" do
|
|||||||
visit new_sdg_management_local_target_path
|
visit new_sdg_management_local_target_path
|
||||||
|
|
||||||
target = SDG::Target["2.3"]
|
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"
|
select code_and_title, from: "Target"
|
||||||
click_button "Create local target"
|
click_button "Create local target"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user