Add scope to filter SDG relations by review status

This commit is contained in:
Senén Rodero Rodríguez
2020-12-21 18:16:24 +01:00
parent 0368aa459f
commit a0c9eba41d
2 changed files with 27 additions and 0 deletions

View File

@@ -28,6 +28,14 @@ module SDG::Relatable
joins(sdg_class.table_name.to_sym).merge(sdg_class.where(code: code)) joins(sdg_class.table_name.to_sym).merge(sdg_class.where(code: code))
end end
def sdg_reviewed
joins(:sdg_review)
end
def pending_sdg_review
left_joins(:sdg_review).merge(SDG::Review.where(id: nil))
end
end end
def related_sdgs def related_sdgs

View File

@@ -170,4 +170,23 @@ describe SDG::Relatable do
expect(relatable.class.by_target(target.code)).to be_empty expect(relatable.class.by_target(target.code)).to be_empty
end end
end end
describe ".pending_sdg_review" do
let!(:relatable) { create(:proposal) }
it "returns records not reviewed yet" do
create(:sdg_review, relatable: create(:proposal))
expect(relatable.class.pending_sdg_review).to match_array [relatable]
end
end
describe ".sdg_reviewed" do
let!(:relatable) { create(:proposal) }
let!(:reviewed_relatable) { create(:sdg_review, relatable: create(:proposal)).relatable }
it "returns records already reviewed" do
expect(relatable.class.sdg_reviewed).to match_array [reviewed_relatable]
end
end
end end