Rename user to contributor in submission
This commit is contained in:

committed by
Sebastian Serth

parent
97138288f4
commit
0234414bae
@@ -8,14 +8,14 @@ h1 = @execution_environment
|
||||
th.header = t(title)
|
||||
tbody
|
||||
- @execution_environment.exercises.each do |exercise|
|
||||
- us = user_statistics[exercise.id]
|
||||
- if not us then us = {"users" => 0, "average_score" => 0.0, "maximum_score" => 0, "stddev_score" => 0.0, "percent_correct" => nil, "average_submission_count" => 0}
|
||||
- us = contributor_statistics[exercise.id]
|
||||
- if not us then us = {"contributors" => 0, "average_score" => 0.0, "maximum_score" => 0, "stddev_score" => 0.0, "percent_correct" => nil, "average_submission_count" => 0}
|
||||
- wts = working_time_statistics[exercise.id]
|
||||
- if wts then average_time = wts["average_time"] else 0
|
||||
- if wts then stddev_time = wts["stddev_time"] else 0
|
||||
tr
|
||||
td = link_to_if policy(exercise).statistics?, exercise.title, controller: "exercises", action: "statistics", id: exercise.id, 'data-turbolinks' => "false"
|
||||
td = us["users"]
|
||||
td = us["contributors"]
|
||||
td = us["average_score"].to_f.round(4)
|
||||
td = us["maximum_score"].to_f.round(2)
|
||||
td = us["stddev_score"].to_f.round(4)
|
||||
|
@@ -3,14 +3,14 @@ h1 = @exercise_collection
|
||||
= row(label: 'exercise_collections.name', value: @exercise_collection.name)
|
||||
= row(label: 'exercise_collections.updated_at', value: @exercise_collection.updated_at)
|
||||
= row(label: 'exercise_collections.exercises', value: @exercise_collection.exercises.count)
|
||||
= row(label: 'exercise_collections.users', value: @exercise_collection.exercises.joins(:submissions).group("submissions.user_id").count.count)
|
||||
= row(label: 'exercise_collections.solutions', value: @exercise_collection.exercises.joins(:submissions).group("submissions.user_id").group("id").count.count)
|
||||
= row(label: 'exercise_collections.users_and_programming_groups', value: Submission.from(@exercise_collection.exercises.joins(:submissions).group(:contributor_id, :contributor_type).select(:contributor_id, :contributor_type)).count)
|
||||
= row(label: 'exercise_collections.solutions', value: Submission.from(@exercise_collection.exercises.joins(:submissions).group(:contributor_id, :contributor_type, :id).select(:contributor_id, :contributor_type)).count)
|
||||
= row(label: 'exercise_collections.submissions', value: @exercise_collection.exercises.joins(:submissions).count)
|
||||
/ further metrics:
|
||||
/ number of users that attempted at least one exercise @exercise_collection.exercises.joins(:submissions).group("submissions.user_id").count.count
|
||||
/ number of solutions: @exercise_collection.exercises.joins(:submissions).group("submissions.user_id").group("id").count.count
|
||||
/ number of contributors that attempted at least one exercise @exercise_collection.exercises.joins(:submissions).group("submissions.contributor_id", "submissions.contributor_type").count.count
|
||||
/ number of solutions: @exercise_collection.exercises.joins(:submissions).group("submissions.contributor_id", "submissions.contributor_type").group("id").count.count
|
||||
/ further filters:
|
||||
/ Only before specific date: date = DateTime.parse("2015-01-01 00:00:00.000000") ; @exercise_collection.exercises.joins(:submissions).where(["submissions.created_at > ?", date]).group("submissions.user_id").count.count
|
||||
/ Only before specific date: date = DateTime.parse("2015-01-01 00:00:00.000000") ; @exercise_collection.exercises.joins(:submissions).where(["submissions.created_at > ?", date]).group("submissions.contributor_id", "submissions.contributor_type").count.count
|
||||
/ Only with specific cause: @exercise_collection.exercises.joins(:submissions).where("submissions.cause" == 'assess').count
|
||||
|
||||
= row(label: 'exercises.statistics.average_worktime', value: @exercise_collection.average_working_time.round(3).to_s + 's')
|
||||
|
@@ -9,7 +9,7 @@ h1 = @exercise
|
||||
|
||||
- [:intermediate, :final].each do |scope|
|
||||
= row(label: ".#{scope}_submissions") do
|
||||
= "#{@exercise.submissions.send(scope).count} (#{t('.users', count: @exercise.submissions.send(scope).distinct.count(:user_id))})"
|
||||
= "#{@exercise.submissions.send(scope).count} (#{t('.users', count: @exercise.submissions.send(scope).distinct.count(:contributor_id))})"
|
||||
|
||||
= row(label: '.finishing_rate') do
|
||||
p
|
||||
@@ -43,7 +43,7 @@ h1 = @exercise
|
||||
p = @exercise.average_working_time
|
||||
|
||||
- Hash[:internal_users => t('.internal_users'), :external_users => t('.external_users')].each_pair do |symbol, label|
|
||||
- submissions = Submission.where(user: @exercise.send(symbol), exercise: @exercise).in_study_group_of(current_user)
|
||||
- submissions = Submission.where(contributor: @exercise.send(symbol), exercise: @exercise).in_study_group_of(current_user)
|
||||
- if !policy(@exercise).detailed_statistics?
|
||||
- submissions = submissions.final
|
||||
- if submissions.any?
|
||||
@@ -60,9 +60,9 @@ h1 = @exercise
|
||||
hr
|
||||
div#chart_2
|
||||
hr
|
||||
- users = symbol.to_s.classify.constantize.where(id: submissions.joins(symbol).group(:user_id).select(:user_id).distinct)
|
||||
- contributors = symbol.to_s.classify.constantize.where(id: submissions.joins(symbol).group(:contributor_id).select(:contributor_id).distinct)
|
||||
.table-responsive.mb-4
|
||||
table.table.table-striped class="#{users.present? ? 'sortable' : ''}"
|
||||
table.table.table-striped class="#{contributors.present? ? 'sortable' : ''}"
|
||||
thead
|
||||
tr
|
||||
th.header = t('.user')
|
||||
@@ -71,14 +71,14 @@ h1 = @exercise
|
||||
th.header = t('.runs') if policy(@exercise).detailed_statistics?
|
||||
th.header = t('.worktime') if policy(@exercise).detailed_statistics?
|
||||
tbody
|
||||
- users.each do |user|
|
||||
- if user_statistics[user.class.name][user.id] then us = user_statistics[user.class.name][user.id] else us = {"maximum_score" => nil, "runs" => nil}
|
||||
- label = "#{user.displayname}"
|
||||
- contributors.each do |contributor|
|
||||
- if contributor_statistics[contributor.class.name][contributor.id] then us = contributor_statistics[contributor.class.name][contributor.id] else us = {"maximum_score" => nil, "runs" => nil}
|
||||
- label = "#{contributor.displayname}"
|
||||
tr
|
||||
td = link_to_if symbol==:external_users && policy(user).statistics?, label, {controller: "exercises", action: "external_user_statistics", external_user_id: user.id, id: @exercise.id}
|
||||
td = link_to_if symbol==:external_users && policy(contributor).statistics?, label, {controller: "exercises", action: "external_user_statistics", external_user_id: contributor.id, id: @exercise.id}
|
||||
td = us['maximum_score'] or 0
|
||||
td.align-middle
|
||||
- latest_user_submission = submissions.where(user: user).final.latest
|
||||
- latest_user_submission = submissions.where(contributor:).final.latest
|
||||
- if latest_user_submission.present?
|
||||
- if latest_user_submission.before_deadline?
|
||||
.unit-test-result.positive-result
|
||||
@@ -87,4 +87,4 @@ h1 = @exercise
|
||||
- elsif latest_user_submission.after_late_deadline?
|
||||
.unit-test-result.negative-result
|
||||
td = us['runs'] if policy(@exercise).detailed_statistics?
|
||||
td = @exercise.average_working_time_for(user) or 0 if policy(@exercise).detailed_statistics?
|
||||
td = @exercise.average_working_time_for(contributor) or 0 if policy(@exercise).detailed_statistics?
|
||||
|
@@ -13,7 +13,7 @@ h1 = Submission.model_name.human(count: 2)
|
||||
thead
|
||||
tr
|
||||
th = sort_link(@search, :exercise_id, t('activerecord.attributes.submission.exercise'))
|
||||
th = sort_link(@search, :user_id, t('activerecord.attributes.submission.user'))
|
||||
th = sort_link(@search, :user_id, t('activerecord.attributes.submission.contributor'))
|
||||
th = sort_link(@search, :cause, t('activerecord.attributes.submission.cause'))
|
||||
th = sort_link(@search, :score, t('activerecord.attributes.submission.score'))
|
||||
th = sort_link(@search, :created_at, t('shared.created_at'))
|
||||
@@ -22,7 +22,7 @@ h1 = Submission.model_name.human(count: 2)
|
||||
- @submissions.each do |submission|
|
||||
tr
|
||||
td = link_to_if(submission.exercise && policy(submission.exercise).show?, submission.exercise, submission.exercise)
|
||||
td = link_to_if(policy(submission.user).show?, submission.user, submission.user)
|
||||
td = link_to_if(policy(submission.contributor).show?, submission.contributor, submission.contributor)
|
||||
td = t("submissions.causes.#{submission.cause}")
|
||||
td = submission.score
|
||||
td = l(submission.created_at, format: :short)
|
||||
|
@@ -8,7 +8,7 @@
|
||||
h1 = @submission
|
||||
|
||||
= row(label: 'submission.exercise', value: link_to_if(policy(@submission.exercise).show?, @submission.exercise, @submission.exercise))
|
||||
= row(label: 'submission.user', value: link_to_if(policy(@submission.user).show?, @submission.user, @submission.user))
|
||||
= row(label: 'submission.contributor', value: link_to_if(policy(@submission.contributor).show?, @submission.contributor, @submission.contributor))
|
||||
= row(label: 'submission.study_group', value: link_to_if(@submission.study_group.present? && policy(@submission.study_group).show?, @submission.study_group, @submission.study_group))
|
||||
= row(label: 'submission.cause', value: t("submissions.causes.#{@submission.cause}"))
|
||||
= row(label: 'submission.score', value: @submission.score)
|
||||
|
Reference in New Issue
Block a user