Fix overlap bug that occurred after mixing interventions and submissions
This commit is contained in:
@ -3,6 +3,7 @@ class ExercisesController < ApplicationController
|
|||||||
include Lti
|
include Lti
|
||||||
include SubmissionParameters
|
include SubmissionParameters
|
||||||
include SubmissionScoring
|
include SubmissionScoring
|
||||||
|
include TimeHelper
|
||||||
|
|
||||||
before_action :handle_file_uploads, only: [:create, :update]
|
before_action :handle_file_uploads, only: [:create, :update]
|
||||||
before_action :set_execution_environments, only: [:create, :edit, :new, :update]
|
before_action :set_execution_environments, only: [:create, :edit, :new, :update]
|
||||||
@ -348,13 +349,13 @@ class ExercisesController < ApplicationController
|
|||||||
if(@external_user)
|
if(@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")
|
||||||
@submissions_and_interventions = (@submissions + UserExerciseIntervention.where("user_id = ? AND exercise_id = ?", @external_user.id, @exercise.id)).sort_by { |a| a.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|
|
deltas = @submissions_and_interventions.map.with_index do |item, index|
|
||||||
delta = item.created_at - @submissions[index - 1].created_at if index > 0
|
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
|
if delta == nil or delta > 10 * 60 then 0 else delta end
|
||||||
end
|
end
|
||||||
@working_times_until = []
|
@working_times_until = []
|
||||||
@submissions_and_interventions.each_with_index do |submission, index|
|
@submissions_and_interventions.each_with_index do |_, index|
|
||||||
@working_times_until.push((Time.at(deltas[1..index].inject(:+)).utc.strftime("%H:%M:%S") if index > 0))
|
@working_times_until.push((format_time_difference(deltas[0..index].inject(:+)) if index > 0))
|
||||||
end
|
end
|
||||||
render 'exercises/external_users/statistics'
|
render 'exercises/external_users/statistics'
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user