You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
psfpeqmhf/app/tasks/migrate_exercise_score_task.rb

29 lines
973 B

5 years ago
class MigrateExerciseScoreTask
include ExercisesHelper
include GitHelper
def calculate exercise_id, user_login=nil
exercise = Exercise.find_by(id: exercise_id)
if exercise.present?
if user_login.present?
ex_users = exercise.exercise_users.where(commit_status: 1, user_id: User.where(login: user_login).pluck(:id))
else
ex_users = exercise.exercise_users.where(commit_status: 1)
end
ex_users.each do |ex_user|
puts ex_user.id
calculate_result = calculate_student_score(exercise, ex_user, ex_user.end_at)
s_score = calculate_result[:total_score]
total_score_subjective_score = ex_user.subjective_score < 0.0 ? 0.0 : ex_user.subjective_score
total_score = s_score + total_score_subjective_score
commit_option = {
:objective_score => s_score,
:score => total_score,
}
ex_user.update_attributes(commit_option)
end
end
end
end