From e9462409fd05fe796ba7485a9498ed382c5f775a Mon Sep 17 00:00:00 2001 From: Ralf Teusner Date: Wed, 16 May 2018 17:06:04 +0200 Subject: [PATCH] fixed the query, removed scopes, added paranthesis for clarity. --- app/controllers/exercises_controller.rb | 2 +- app/models/request_for_comment.rb | 2 -- app/models/submission.rb | 6 +++++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 467e71cc..ea72dfde 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -416,7 +416,7 @@ class ExercisesController < ApplicationController return end - if @is_experimental_course and @rfc_group == :hide_rfc + if @is_experimental_course and (@rfc_group == :hide_rfc) redirect_to_lti_return_path return end diff --git a/app/models/request_for_comment.rb b/app/models/request_for_comment.rb index fc77352c..d00d08eb 100644 --- a/app/models/request_for_comment.rb +++ b/app/models/request_for_comment.rb @@ -8,8 +8,6 @@ class RequestForComment < ActiveRecord::Base has_many :subscriptions scope :unsolved, -> { where(solved: [false, nil]) } - 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 74ffcd24..5f86d0b8 100644 --- a/app/models/submission.rb +++ b/app/models/submission.rb @@ -66,6 +66,10 @@ 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) } + # old query + # 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) } + + # experimental query: + RequestForComment.unsolved.joins('JOIN exercise_collections_exercises ece ON ece.exercise_id = request_for_comments.exercise_id').where('ece.exercise_collection_id != 3 OR user_id%10 > 3').where.not(question: nil).order("RANDOM()").to_a end end