diff --git a/app/models/concerns/sdg/relatable.rb b/app/models/concerns/sdg/relatable.rb index 0c6908f2d..f596fcb31 100644 --- a/app/models/concerns/sdg/relatable.rb +++ b/app/models/concerns/sdg/relatable.rb @@ -14,7 +14,6 @@ module SDG::Relatable through: :sdg_relations, source: :related_sdg, source_type: "SDG::Target" - alias_method :sdg_targets, :sdg_global_targets alias_method :sdg_targets=, :sdg_global_targets= has_one :sdg_review, as: :relatable, dependent: :destroy, class_name: "SDG::Review" @@ -54,12 +53,16 @@ module SDG::Relatable sdg_relations.map(&:related_sdg) end + def sdg_targets + sdg_global_targets + sdg_local_targets + end + def sdg_goal_list sdg_goals.order(:code).map(&:code).join(", ") end def sdg_target_list - sdg_global_targets.sort.map(&:code).join(", ") + sdg_targets.sort.map(&:code).join(", ") end def sdg_related_list diff --git a/spec/models/sdg/relatable_spec.rb b/spec/models/sdg/relatable_spec.rb index 31dad7a84..2c3d2f4fd 100644 --- a/spec/models/sdg/relatable_spec.rb +++ b/spec/models/sdg/relatable_spec.rb @@ -60,6 +60,13 @@ describe SDG::Relatable do expect(relatable.sdg_target_list).to eq "1.2, 2.1, 2.2" end + + it "includes both targets and local targets in order" do + relatable.sdg_global_targets = [SDG::Target[2.2], SDG::Target[1.2], SDG::Target[2.1]] + relatable.sdg_local_targets = %w[1.1.1 2.1.3].map { |code| create(:sdg_local_target, code: code) } + + expect(relatable.sdg_target_list).to eq "1.1.1, 1.2, 2.1, 2.1.3, 2.2" + end end describe "#sdg_local_targets" do