improved readability
This commit is contained in:
@ -24,7 +24,10 @@ class Exercise < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def average_score
|
def average_score
|
||||||
ActiveRecord::Base.connection.execute("SELECT AVG(score) AS average_score FROM (SELECT MAX(score) AS score FROM submissions WHERE cause = 'submit' AND exercise_id = '#{id}' GROUP BY user_id) AS maximum_scores")[0]['average_score'].to_f.round(2)
|
if submissions.exists?(cause: 'submit')
|
||||||
|
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').where(cause: 'submit').group(:user_id).to_sql
|
||||||
|
self.class.connection.execute("SELECT AVG(maximum_score) AS average_score FROM (#{maximum_scores_query}) AS maximum_scores").first['average_score'].to_f
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def duplicate(attributes = {})
|
def duplicate(attributes = {})
|
||||||
|
@ -5,5 +5,5 @@ h1 = @exercise
|
|||||||
= row(label: ".#{scope}_submissions") do
|
= row(label: ".#{scope}_submissions") do
|
||||||
= "#{@exercise.submissions.send(scope).count} (#{t('.users', count: @exercise.submissions.send(scope).distinct.count(:user_id, :user_type))})"
|
= "#{@exercise.submissions.send(scope).count} (#{t('.users', count: @exercise.submissions.send(scope).distinct.count(:user_id, :user_type))})"
|
||||||
= row(label: '.average_score') do
|
= row(label: '.average_score') do
|
||||||
p == @exercise.average_score ? t('shared.out_of', maximum_value: @exercise.maximum_score, value: @exercise.average_score) : empty
|
p == @exercise.average_score ? t('shared.out_of', maximum_value: @exercise.maximum_score, value: @exercise.average_score.round(2)) : empty
|
||||||
p = progress_bar(@exercise.average_percentage)
|
p = progress_bar(@exercise.average_percentage)
|
||||||
|
@ -11,5 +11,5 @@ h2 = t('shared.statistics')
|
|||||||
p = progress_bar(@submission.percentage)
|
p = progress_bar(@submission.percentage)
|
||||||
= row(label: '.final_submissions', value: @submission.exercise.submissions.final.distinct.count(:user_id, :user_type) - 1)
|
= row(label: '.final_submissions', value: @submission.exercise.submissions.final.distinct.count(:user_id, :user_type) - 1)
|
||||||
= row(label: '.average_score') do
|
= row(label: '.average_score') do
|
||||||
p == t('shared.out_of', maximum_value: @submission.exercise.maximum_score, value: @submission.exercise.average_score)
|
p == t('shared.out_of', maximum_value: @submission.exercise.maximum_score, value: @submission.exercise.average_score.round(2))
|
||||||
p = progress_bar(@submission.exercise.average_percentage)
|
p = progress_bar(@submission.exercise.average_percentage)
|
||||||
|
Reference in New Issue
Block a user