Reduce SQL queries for external user statistics

Fixes CODEOCEAN-100
Fixes CODEOCEAN-YN
Fixes CODEOCEAN-10H
This commit is contained in:
Sebastian Serth
2023-12-05 20:56:44 +01:00
parent de25cb6712
commit a6f64c83a0
3 changed files with 10 additions and 3 deletions

View File

@ -521,7 +521,8 @@ class ExercisesController < ApplicationController
submissions = Submission.where(contributor: @external_user, exercise: @exercise)
.in_study_group_of(current_user)
.order(:created_at)
@show_autosaves = params[:show_autosaves] == 'true' || submissions.none? {|s| s.cause != 'autosave' }
.includes(:exercise, testruns: [:testrun_messages, {file: [:file_type]}], files: [:file_type])
@show_autosaves = params[:show_autosaves] == 'true' || submissions.where.not(cause: 'autosave').none?
submissions = submissions.where.not(cause: 'autosave') unless @show_autosaves
interventions = UserExerciseIntervention.where('user_id = ? AND exercise_id = ?', @external_user.id,
@exercise.id)