Rename user to contributor in exercise statistics

Fixes CODEOCEAN-TN
This commit is contained in:
Sebastian Serth
2023-09-05 18:44:20 +02:00
parent 4b3f5d152b
commit f36f3cdc64
2 changed files with 10 additions and 10 deletions

View File

@ -23,13 +23,13 @@ class ExternalUsersController < ApplicationController
def working_time_query(tag = nil) def working_time_query(tag = nil)
" "
SELECT user_id, SELECT contributor_id,
bar.exercise_id, bar.exercise_id,
max(score) as maximum_score, max(score) as maximum_score,
count(bar.id) as runs, count(bar.id) as runs,
sum(working_time_new) AS working_time sum(working_time_new) AS working_time
FROM FROM
(SELECT user_id, (SELECT contributor_id,
exercise_id, exercise_id,
score, score,
id, id,
@ -38,23 +38,23 @@ class ExternalUsersController < ApplicationController
ELSE working_time ELSE working_time
END AS working_time_new END AS working_time_new
FROM FROM
(SELECT user_id, (SELECT contributor_id,
exercise_id, exercise_id,
max(score) AS score, max(score) AS score,
id, id,
(created_at - lag(created_at) over (PARTITION BY user_id, exercise_id (created_at - lag(created_at) over (PARTITION BY contributor_id, exercise_id
ORDER BY created_at)) AS working_time ORDER BY created_at)) AS working_time
FROM submissions FROM submissions
WHERE #{ExternalUser.sanitize_sql(['user_id = ?', @user.id])} WHERE #{ExternalUser.sanitize_sql(['contributor_id = ?', @user.id])}
AND user_type = 'ExternalUser' AND contributor_type = 'ExternalUser'
#{current_user.admin? ? '' : "AND #{ExternalUser.sanitize_sql(['study_group_id IN (?)', current_user.study_groups.pluck(:id)])} AND cause = 'submit'"} #{current_user.admin? ? '' : "AND #{ExternalUser.sanitize_sql(['study_group_id IN (?)', current_user.study_groups.pluck(:id)])} AND cause = 'submit'"}
GROUP BY exercise_id, GROUP BY exercise_id,
user_id, contributor_id,
id id
) AS foo ) AS foo
) AS bar ) AS bar
#{tag.nil? ? '' : " JOIN exercise_tags et ON et.exercise_id = bar.exercise_id AND #{ExternalUser.sanitize_sql(['et.tag_id = ?', tag])}"} #{tag.nil? ? '' : " JOIN exercise_tags et ON et.exercise_id = bar.exercise_id AND #{ExternalUser.sanitize_sql(['et.tag_id = ?', tag])}"}
GROUP BY user_id, GROUP BY contributor_id,
bar.exercise_id; bar.exercise_id;
" "
end end

View File

@ -1,6 +1,6 @@
h1 = t('.title') h1 = t('.title')
- submissions = Submission.where(user: @user).in_study_group_of(current_user) - submissions = Submission.where(contributor: @user).in_study_group_of(current_user)
- exercises = Exercise.where(id: submissions.joins(:exercise).group(:exercise_id).select(:exercise_id).distinct).reject(&:nil?) - exercises = Exercise.where(id: submissions.joins(:exercise).group(:exercise_id).select(:exercise_id).distinct).reject(&:nil?)
- if submissions.any? && !policy(exercises.first).detailed_statistics? - if submissions.any? && !policy(exercises.first).detailed_statistics?
- submissions = submissions.final - submissions = submissions.final