diff --git a/app/controllers/proposals_controller.rb b/app/controllers/proposals_controller.rb index e16691abf..6f2d7e10b 100644 --- a/app/controllers/proposals_controller.rb +++ b/app/controllers/proposals_controller.rb @@ -27,8 +27,7 @@ class ProposalsController < ApplicationController super @notifications = @proposal.notifications @notifications = @proposal.notifications.not_moderated - @related_contents = Kaminari.paginate_array(@proposal.relationed_contents) - .page(params[:page]).per(5) + @related_contents = Kaminari.paginate_array(@proposal.relationed_contents).page(params[:page]).per(5) if request.path != proposal_path(@proposal) redirect_to proposal_path(@proposal), status: :moved_permanently diff --git a/app/models/concerns/relationable.rb b/app/models/concerns/relationable.rb index 86c58b4dd..d0c837d1e 100644 --- a/app/models/concerns/relationable.rb +++ b/app/models/concerns/relationable.rb @@ -14,5 +14,6 @@ module Relationable def relationed_contents related_contents.not_hidden.map(&:child_relationable) + .reject { |related| related.respond_to?(:retired?) && related.retired? } end end diff --git a/spec/models/related_content_spec.rb b/spec/models/related_content_spec.rb index 79155f69f..557ff3e53 100644 --- a/spec/models/related_content_spec.rb +++ b/spec/models/related_content_spec.rb @@ -57,5 +57,15 @@ describe RelatedContent do it "returns not hidden by reports related contents" do expect(parent_relationable.relationed_contents).to eq [child_relationable] end + + it "returns related contents without retired proposals" do + create( + :related_content, + parent_relationable: parent_relationable, + child_relationable: create(:proposal, :retired), + author: build(:user) + ) + expect(parent_relationable.relationed_contents).to eq [child_relationable] + end end end