Fix rubocop offenses
This commit is contained in:
@ -6,7 +6,7 @@ module FileParameters
|
|||||||
params.reject do |_, file_attributes|
|
params.reject do |_, file_attributes|
|
||||||
file = CodeOcean::File.find_by(id: file_attributes[:file_id])
|
file = CodeOcean::File.find_by(id: file_attributes[:file_id])
|
||||||
# avoid that public files from other contexts can be created
|
# avoid that public files from other contexts can be created
|
||||||
file.nil? || file.hidden || file.read_only || file.context_type == 'Exercise' && file.context_id != exercise.id
|
file.nil? || file.hidden || file.read_only || (file.context_type == 'Exercise' && file.context_id != exercise.id)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
[]
|
[]
|
||||||
|
@ -5,7 +5,7 @@ module TimeHelper
|
|||||||
def time_to_f(timestamp)
|
def time_to_f(timestamp)
|
||||||
unless timestamp.nil?
|
unless timestamp.nil?
|
||||||
timestamp = timestamp.split(':')
|
timestamp = timestamp.split(':')
|
||||||
return timestamp[0].to_i * 60 * 60 + timestamp[1].to_i * 60 + timestamp[2].to_f
|
return (timestamp[0].to_i * 60 * 60) + (timestamp[1].to_i * 60) + timestamp[2].to_f
|
||||||
end
|
end
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
@ -68,7 +68,9 @@ class Exercise < ApplicationRecord
|
|||||||
if submissions.exists?(cause: 'submit')
|
if submissions.exists?(cause: 'submit')
|
||||||
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').group(:user_id).to_sql.sub('$1', id.to_s)
|
maximum_scores_query = submissions.select('MAX(score) AS maximum_score').group(:user_id).to_sql.sub('$1', id.to_s)
|
||||||
self.class.connection.execute("SELECT AVG(maximum_score) AS average_score FROM (#{maximum_scores_query}) AS maximum_scores").first['average_score'].to_f
|
self.class.connection.execute("SELECT AVG(maximum_score) AS average_score FROM (#{maximum_scores_query}) AS maximum_scores").first['average_score'].to_f
|
||||||
else 0 end
|
else
|
||||||
|
0
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def average_number_of_submissions
|
def average_number_of_submissions
|
||||||
|
@ -240,7 +240,7 @@ class ProxyExercise < ApplicationRecord
|
|||||||
|
|
||||||
def tag_diminishing_return_function(count_tag, total_count_tag)
|
def tag_diminishing_return_function(count_tag, total_count_tag)
|
||||||
total_count_tag += 1 # bonus exercise comes on top
|
total_count_tag += 1 # bonus exercise comes on top
|
||||||
1 / (1 + (Math::E**(-3 / (0.5 * total_count_tag) * (count_tag - 0.5 * total_count_tag))))
|
1 / (1 + (Math::E**(-3 / (0.5 * total_count_tag) * (count_tag - (0.5 * total_count_tag)))))
|
||||||
end
|
end
|
||||||
|
|
||||||
def select_easiest_exercise(exercises)
|
def select_easiest_exercise(exercises)
|
||||||
|
@ -6,7 +6,7 @@ class ExercisePolicy < AdminOrAuthorPolicy
|
|||||||
end
|
end
|
||||||
|
|
||||||
%i[show? feedback? statistics? rfcs_for_exercise?].each do |action|
|
%i[show? feedback? statistics? rfcs_for_exercise?].each do |action|
|
||||||
define_method(action) { admin? || teacher_in_study_group? || teacher? && @record.public? || author? }
|
define_method(action) { admin? || teacher_in_study_group? || (teacher? && @record.public?) || author? }
|
||||||
end
|
end
|
||||||
|
|
||||||
def study_group_dashboard?
|
def study_group_dashboard?
|
||||||
|
@ -6,7 +6,7 @@ class ProxyExercisePolicy < AdminOrAuthorPolicy
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show?
|
def show?
|
||||||
admin? || teacher_in_study_group? || teacher? && @record.public? || author?
|
admin? || teacher_in_study_group? || (teacher? && @record.public?) || author?
|
||||||
end
|
end
|
||||||
|
|
||||||
%i[clone? destroy? edit? update?].each do |action|
|
%i[clone? destroy? edit? update?].each do |action|
|
||||||
|
@ -6,7 +6,7 @@ class StudyGroupPolicy < AdminOnlyPolicy
|
|||||||
end
|
end
|
||||||
|
|
||||||
%i[show? destroy? edit? update? stream_la?].each do |action|
|
%i[show? destroy? edit? update? stream_la?].each do |action|
|
||||||
define_method(action) { admin? || @user.teacher? && @record.present? && @user.study_groups.exists?(@record.id) }
|
define_method(action) { admin? || (@user.teacher? && @record.present? && @user.study_groups.exists?(@record.id)) }
|
||||||
end
|
end
|
||||||
|
|
||||||
class Scope < Scope
|
class Scope < Scope
|
||||||
|
@ -51,7 +51,7 @@ namespace :detect_exercise_anomalies do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def log(message = '', indent_level = 0, prefix = '')
|
def log(message = '', indent_level = 0, prefix = '')
|
||||||
puts("\t" * indent_level + "#{prefix}#{message}")
|
puts(("\t" * indent_level) + "#{prefix}#{message}")
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_collections(number_of_exercises, number_of_solutions)
|
def get_collections(number_of_exercises, number_of_solutions)
|
||||||
|
@ -93,7 +93,7 @@ describe Submission do
|
|||||||
describe '#redirect_to_feedback?' do
|
describe '#redirect_to_feedback?' do
|
||||||
context 'with no exercise feedback' do
|
context 'with no exercise feedback' do
|
||||||
let(:exercise) { FactoryBot.create(:dummy) }
|
let(:exercise) { FactoryBot.create(:dummy) }
|
||||||
let(:user) { FactoryBot.build(:external_user, id: (11 - exercise.created_at.to_i % 10) % 10) }
|
let(:user) { FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) % 10) }
|
||||||
let(:submission) { FactoryBot.build(:submission, exercise: exercise, user: user) }
|
let(:submission) { FactoryBot.build(:submission, exercise: exercise, user: user) }
|
||||||
|
|
||||||
it 'sends 10% of users to feedback page' do
|
it 'sends 10% of users to feedback page' do
|
||||||
@ -102,7 +102,7 @@ describe Submission do
|
|||||||
|
|
||||||
it 'does not redirect other users' do
|
it 'does not redirect other users' do
|
||||||
9.times do |i|
|
9.times do |i|
|
||||||
submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryBot.build(:external_user, id: (11 - exercise.created_at.to_i % 10) - i - 1))
|
submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) - i - 1))
|
||||||
expect(submission.send(:redirect_to_feedback?)).to be_falsey
|
expect(submission.send(:redirect_to_feedback?)).to be_falsey
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -110,7 +110,7 @@ describe Submission do
|
|||||||
|
|
||||||
context 'with little exercise feedback' do
|
context 'with little exercise feedback' do
|
||||||
let(:exercise) { FactoryBot.create(:dummy_with_user_feedbacks) }
|
let(:exercise) { FactoryBot.create(:dummy_with_user_feedbacks) }
|
||||||
let(:user) { FactoryBot.build(:external_user, id: (11 - exercise.created_at.to_i % 10) % 10) }
|
let(:user) { FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) % 10) }
|
||||||
let(:submission) { FactoryBot.build(:submission, exercise: exercise, user: user) }
|
let(:submission) { FactoryBot.build(:submission, exercise: exercise, user: user) }
|
||||||
|
|
||||||
it 'sends 10% of users to feedback page' do
|
it 'sends 10% of users to feedback page' do
|
||||||
@ -119,7 +119,7 @@ describe Submission do
|
|||||||
|
|
||||||
it 'does not redirect other users' do
|
it 'does not redirect other users' do
|
||||||
9.times do |i|
|
9.times do |i|
|
||||||
submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryBot.build(:external_user, id: (11 - exercise.created_at.to_i % 10) - i - 1))
|
submission = FactoryBot.build(:submission, exercise: exercise, user: FactoryBot.build(:external_user, id: (11 - (exercise.created_at.to_i % 10)) - i - 1))
|
||||||
expect(submission.send(:redirect_to_feedback?)).to be_falsey
|
expect(submission.send(:redirect_to_feedback?)).to be_falsey
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -118,7 +118,7 @@ describe ProformaService::ConvertTaskToExercise do
|
|||||||
end
|
end
|
||||||
|
|
||||||
context 'when file is very large' do
|
context 'when file is very large' do
|
||||||
let(:content) { 'test' * 10**5 }
|
let(:content) { 'test' * (10**5) }
|
||||||
|
|
||||||
it 'creates an exercise with a file that has the correct attributes' do
|
it 'creates an exercise with a file that has the correct attributes' do
|
||||||
expect(convert_to_exercise_service.files.first).to have_attributes(content: content)
|
expect(convert_to_exercise_service.files.first).to have_attributes(content: content)
|
||||||
|
@ -83,7 +83,7 @@ describe ProformaService::Import do
|
|||||||
it { is_expected.to be_an_equal_exercise_as exercise }
|
it { is_expected.to be_an_equal_exercise_as exercise }
|
||||||
|
|
||||||
context 'when the mainfile is very large' do
|
context 'when the mainfile is very large' do
|
||||||
let(:file) { FactoryBot.build(:file, content: 'test' * 10**5) }
|
let(:file) { FactoryBot.build(:file, content: 'test' * (10**5)) }
|
||||||
|
|
||||||
it { is_expected.to be_an_equal_exercise_as exercise }
|
it { is_expected.to be_an_equal_exercise_as exercise }
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user