added intervention to statistics of exercises of external users

This commit is contained in:
Thomas Hille
2017-04-05 12:08:27 +02:00
parent 6eea338f84
commit 870549944d

View File

@ -1,6 +1,8 @@
h1 = "#{@exercise} (external user #{@external_user})" h1 = "#{@exercise} (external user #{@external_user})"
- submissions = Submission.where("user_id = ? AND exercise_id = ?", @external_user.id, @exercise.id).order("created_at") - submissions = Submission.where("user_id = ? AND exercise_id = ?", @external_user.id, @exercise.id).order("created_at")
- current_submission = submissions.first - current_submission = submissions.first
- submissions_and_interventions = (submissions + UserExerciseIntervention.where("user_id = ? AND exercise_id = ?", @external_user.id, @exercise.id)).sort_by { |a| a.created_at }
- if current_submission - if current_submission
- initial_files = current_submission.files.to_a - initial_files = current_submission.files.to_a
@ -41,20 +43,26 @@ h1 = "#{@exercise} (external user #{@external_user})"
- ['.time', '.cause', '.score', '.tests', '.time_difference'].each do |title| - ['.time', '.cause', '.score', '.tests', '.time_difference'].each do |title|
th.header = t(title) th.header = t(title)
tbody tbody
- deltas = submissions.map.with_index {|item, index| delta = item.created_at - submissions[index - 1].created_at if index > 0; if delta == nil or delta > 30*60 then 0 else delta end} - deltas = submissions.map.with_index {|item, index| delta = item.created_at - submissions[index - 1].created_at if index > 0; if delta == nil or delta > 10*60 then 0 else delta end}
- submissions.each_with_index do |submission, index| - submissions_and_interventions.each_with_index do |submission_or_intervention, index|
tr data-id=submission.id tr data-id=submission_or_intervention.id
td.clickable = submission.created_at.strftime("%F %T") td.clickable = submission_or_intervention.created_at.strftime("%F %T")
td = submission.cause - if submission_or_intervention.is_a?(Submission)
td = submission.score td = submission_or_intervention.cause
td = submission_or_intervention.score
td td
-submission.testruns.each do |run| -submission_or_intervention.testruns.each do |run|
- if run.passed - if run.passed
.unit-test-result.positive-result title=run.output .unit-test-result.positive-result title=run.output
- else - else
.unit-test-result.negative-result title=run.output .unit-test-result.negative-result title=run.output
td = Time.at(deltas[1..index].inject(:+)).utc.strftime("%H:%M:%S") if index > 0 td = Time.at(deltas[1..index].inject(:+)).utc.strftime("%H:%M:%S") if index > 0
-working_times_until.push((Time.at(deltas[1..index].inject(:+)).utc.strftime("%H:%M:%S") if index > 0)) -working_times_until.push((Time.at(deltas[1..index].inject(:+)).utc.strftime("%H:%M:%S") if index > 0))
- elsif submission_or_intervention.is_a? UserExerciseIntervention
td = submission_or_intervention.intervention.name
td =
td =
td =
p = t('.addendum') p = t('.addendum')
.hidden#wtimes data-working_times=ActiveSupport::JSON.encode(working_times_until); .hidden#wtimes data-working_times=ActiveSupport::JSON.encode(working_times_until);
div#progress_chart.col-lg-12 div#progress_chart.col-lg-12