diff --git a/app/models/request_for_comment.rb b/app/models/request_for_comment.rb index f0f2953f..fc77352c 100644 --- a/app/models/request_for_comment.rb +++ b/app/models/request_for_comment.rb @@ -8,7 +8,8 @@ class RequestForComment < ActiveRecord::Base has_many :subscriptions scope :unsolved, -> { where(solved: [false, nil]) } - scope :not_stale, -> { where("user_id%10 < 3").where(exercise.exercise_collections.none{|ec| ec.id = 3}) } + scope :stale, -> { where(exercise.exercise_collections.any{|ec| ec.id = 3}).where("user_id%10 < 3")} + scope :not, ->(scope) { where(scope.where_values.reduce(:and).not) } def self.last_per_user(n = 5) from("(#{row_number_user_sql}) as request_for_comments") diff --git a/app/models/submission.rb b/app/models/submission.rb index 496ae056..74ffcd24 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -66,6 +66,6 @@ class Submission < ActiveRecord::Base end def unsolved_rfc - RequestForComment.unsolved.not_stale.where(exercise_id: exercise).where.not(question: nil).order("RANDOM()").find { | rfc_element |(rfc_element.comments_count < MAX_COMMENTS_ON_RECOMMENDED_RFC) } + RequestForComment.unsolved.not(:stale).where(exercise_id: exercise).where.not(question: nil).order("RANDOM()").find { | rfc_element |(rfc_element.comments_count < MAX_COMMENTS_ON_RECOMMENDED_RFC) } end end