Remove @submissions variable for external_user_statistics

This commit is contained in:
Sebastian Serth
2022-07-21 16:33:55 +02:00
committed by Sebastian Serth
parent 2141fdb1ac
commit d4c567c722
2 changed files with 11 additions and 10 deletions

View File

@ -492,13 +492,13 @@ working_time_accumulated: working_time_accumulated})
# Render statistics page for one specific external user # Render statistics page for one specific external user
if policy(@exercise).detailed_statistics? if policy(@exercise).detailed_statistics?
@submissions = Submission.where(user: @external_user, submissions = Submission.where(user: @external_user,
exercise_id: @exercise.id).in_study_group_of(current_user).order('created_at') exercise_id: @exercise.id).in_study_group_of(current_user).order('created_at')
@show_autosaves = params[:show_autosaves] == 'true' @show_autosaves = params[:show_autosaves] == 'true'
@submissions = @submissions.where.not(cause: 'autosave') unless @show_autosaves submissions = submissions.where.not(cause: 'autosave') unless @show_autosaves
interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id, interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id,
@exercise.id) @exercise.id)
@all_events = (@submissions + interventions).sort_by(&:created_at) @all_events = (submissions + interventions).sort_by(&:created_at)
@deltas = @all_events.map.with_index do |item, index| @deltas = @all_events.map.with_index do |item, index|
delta = item.created_at - @all_events[index - 1].created_at if index.positive? delta = item.created_at - @all_events[index - 1].created_at if index.positive?
delta.nil? || (delta > StatisticsHelper::WORKING_TIME_DELTA_IN_SECONDS) ? 0 : delta delta.nil? || (delta > StatisticsHelper::WORKING_TIME_DELTA_IN_SECONDS) ? 0 : delta
@ -510,12 +510,12 @@ working_time_accumulated: working_time_accumulated})
else else
final_submissions = Submission.where(user: @external_user, final_submissions = Submission.where(user: @external_user,
exercise_id: @exercise.id).in_study_group_of(current_user).final exercise_id: @exercise.id).in_study_group_of(current_user).final
@submissions = [] submissions = []
%i[before_deadline within_grace_period after_late_deadline].each do |filter| %i[before_deadline within_grace_period after_late_deadline].each do |filter|
relevant_submission = final_submissions.send(filter).latest relevant_submission = final_submissions.send(filter).latest
@submissions.push relevant_submission if relevant_submission.present? submissions.push relevant_submission if relevant_submission.present?
end end
@all_events = @submissions @all_events = submissions
end end
render 'exercises/external_users/statistics' render 'exercises/external_users/statistics'

View File

@ -3,20 +3,21 @@ h1
' (external user ' (external user
= link_to_if(policy(@external_user).show?, @external_user.displayname, @external_user) = link_to_if(policy(@external_user).show?, @external_user.displayname, @external_user)
' ) ' )
- current_submission = @submissions.first - submissions = @all_events.filter{|event| event.is_a? Submission}
- current_submission = submissions.first
- if current_submission - if current_submission
- initial_files = current_submission.files.to_a - initial_files = current_submission.files.to_a
- all_files = [] - all_files = []
- file_types = Set.new() - file_types = Set.new()
- @submissions.each do |submission| - submissions.each do |submission|
- submission.files.each do |file| - submission.files.each do |file|
- file_types.add(ActiveSupport::JSON.encode(file.file_type)) - file_types.add(ActiveSupport::JSON.encode(file.file_type))
- all_files.push(submission.files) - all_files.push(submission.files)
- all_files.reject!(&:blank?) - all_files.reject!(&:blank?)
- file_types.reject!(&:blank?) - file_types.reject!(&:blank?)
.d-none#data data-submissions=ActiveSupport::JSON.encode(@submissions) data-files=ActiveSupport::JSON.encode(all_files) data-file-types=ActiveSupport::JSON.encode(file_types) .d-none#data data-submissions=ActiveSupport::JSON.encode(submissions) data-files=ActiveSupport::JSON.encode(all_files) data-file-types=ActiveSupport::JSON.encode(file_types)
#stats-editor.row #stats-editor.row
- index = 0 - index = 0
@ -33,7 +34,7 @@ h1
input type='range' orient='horizontal' list='datapoints' min=0 max=all_files.length-1 value=0 style="width: 100%" input type='range' orient='horizontal' list='datapoints' min=0 max=all_files.length-1 value=0 style="width: 100%"
datalist#datapoints datalist#datapoints
- index=0 - index=0
- @submissions.each do |submission| - submissions.each do |submission|
- next if submission.files.blank? - next if submission.files.blank?
option data-submission=submission option data-submission=submission
=index =index