From 98344a109efb52b1adf7cd448241c50e09c46527 Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Fri, 31 Aug 2018 13:42:25 +0200 Subject: [PATCH] Fix overlap bug that occurred after mixing interventions and submissions --- app/controllers/exercises_controller.rb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 8855228e..97fb3b61 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -3,6 +3,7 @@ class ExercisesController < ApplicationController include Lti include SubmissionParameters include SubmissionScoring + include TimeHelper before_action :handle_file_uploads, only: [:create, :update] before_action :set_execution_environments, only: [:create, :edit, :new, :update] @@ -348,13 +349,13 @@ class ExercisesController < ApplicationController if(@external_user) @submissions = Submission.where("user_id = ? AND exercise_id = ?", @external_user.id, @exercise.id).order("created_at") @submissions_and_interventions = (@submissions + UserExerciseIntervention.where("user_id = ? AND exercise_id = ?", @external_user.id, @exercise.id)).sort_by { |a| a.created_at } - deltas = @submissions.map.with_index do |item, index| - delta = item.created_at - @submissions[index - 1].created_at if index > 0 + deltas = @submissions_and_interventions.map.with_index do |item, index| + delta = item.created_at - @submissions_and_interventions[index - 1].created_at if index > 0 if delta == nil or delta > 10 * 60 then 0 else delta end end @working_times_until = [] - @submissions_and_interventions.each_with_index do |submission, index| - @working_times_until.push((Time.at(deltas[1..index].inject(:+)).utc.strftime("%H:%M:%S") if index > 0)) + @submissions_and_interventions.each_with_index do |_, index| + @working_times_until.push((format_time_difference(deltas[0..index].inject(:+)) if index > 0)) end render 'exercises/external_users/statistics' else