Add finishing rate to exercise statistics
This commit is contained in:
@ -352,7 +352,11 @@ class Exercise < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def has_user_solved(user)
|
||||
return maximum_score(user).to_i == maximum_score.to_i
|
||||
maximum_score(user).to_i == maximum_score.to_i
|
||||
end
|
||||
|
||||
def finishers
|
||||
ExternalUser.joins(:submissions).where(submissions: {exercise_id: id, score: maximum_score, cause: %w(submit assess)}).distinct
|
||||
end
|
||||
|
||||
def set_default_values
|
||||
|
@ -2,9 +2,15 @@ script src="http://labratrevenge.com/d3-tip/javascripts/d3.tip.v0.6.3.js"
|
||||
h1 = @exercise
|
||||
|
||||
= row(label: '.participants', value: @exercise.users.distinct.count)
|
||||
|
||||
- [:intermediate, :final].each do |scope|
|
||||
= row(label: ".#{scope}_submissions") do
|
||||
= "#{@exercise.submissions.send(scope).count} (#{t('.users', count: @exercise.submissions.send(scope).distinct.count(:user_id))})"
|
||||
|
||||
= row(label: '.finishing_rate') do
|
||||
p == @exercise.finishers.count ? "#{t('shared.out_of', maximum_value: @exercise.users.distinct.count, value: @exercise.finishers.count)} #{t('exercises.statistics.external_users')}" : empty
|
||||
p = progress_bar((100.0 / @exercise.users.distinct.count * @exercise.finishers.count).round(2))
|
||||
|
||||
= row(label: '.average_score') do
|
||||
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)
|
||||
@ -40,4 +46,4 @@ h1 = @exercise
|
||||
td = link_to_if symbol==:external_users, label, {controller: "exercises", action: "statistics", external_user_id: user.id, id: @exercise.id}
|
||||
td = us['maximum_score'] or 0
|
||||
td = us['runs']
|
||||
td = @exercise.average_working_time_for(user.id) or 0
|
||||
td = @exercise.average_working_time_for(user.id) or 0
|
||||
|
@ -350,7 +350,8 @@ de:
|
||||
worktime: Arbeitszeit
|
||||
average_worktime: Durchschnittliche Arbeitszeit
|
||||
internal_users: Interne Nutzer
|
||||
external_user: Externe Nutzer
|
||||
external_users: Externe Nutzer
|
||||
finishing_rate: Abschlussrate
|
||||
submit:
|
||||
failure: Beim Übermitteln Ihrer Punktzahl ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.
|
||||
full_score_redirect_to_rfc: Herzlichen Glückwunsch! Sie haben die maximale Punktzahl für diese Aufgabe an den Kurs übertragen. Ein anderer Teilnehmer hat eine Frage zu der von Ihnen gelösten Aufgabe. Er würde sich sicherlich sehr über ihre Hilfe und Kommentare freuen.
|
||||
|
@ -351,6 +351,7 @@ en:
|
||||
average_worktime: Average Working Time
|
||||
internal_users: Internal Users
|
||||
external_users: External Users
|
||||
finishing_rate: Finishing Rate
|
||||
submit:
|
||||
failure: An error occured while transmitting your score. Please try again later.
|
||||
full_score_redirect_to_rfc: Congratulations! You achieved and submitted the highest possible score for this exercise. Another participant has a question concerning the exercise you just solved. Your help and comments will be greatly appreciated!
|
||||
|
Reference in New Issue
Block a user