This commit is contained in:
leo.selig
2016-02-04 11:02:56 +01:00
21 changed files with 782 additions and 43 deletions

View File

@@ -29,12 +29,12 @@ class Exercise < ActiveRecord::Base
def average_percentage
(average_score / maximum_score * 100).round if average_score
(average_score / maximum_score * 100).round if average_score and maximum_score != 0.0 else 0
end
def average_score
if submissions.exists?(cause: 'submit')
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').where(cause: 'submit').group(:user_id).to_sql.sub('$1', id.to_s)
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').group(:user_id).to_sql.sub('$1', id.to_s)
self.class.connection.execute("SELECT AVG(maximum_score) AS average_score FROM (#{maximum_scores_query}) AS maximum_scores").first['average_score'].to_f
else 0 end
end