class BasicLTI::BasicOutcomes::LtiResponse

Public Instance Methods

create_homework_submission(_tool, submission_hash, assignment, user, new_score, raw_score) click to toggle source
# File lib/basic_lti/basic_outcomes.rb, line 6
def create_homework_submission(_tool, submission_hash, assignment, user, new_score, raw_score)
  homework_submission_alias(_tool, submission_hash, assignment, user, new_score, raw_score)

  if SettingsService.get_settings(object: :school, id: 1)['lti_keep_highest_score']
    update_submission_with_best_score
  end
end
Also aliased as: homework_submission_alias
homework_submission_alias(_tool, submission_hash, assignment, user, new_score, raw_score)

Private Instance Methods

update_submission_with_best_score() click to toggle source
# File lib/basic_lti/basic_outcomes.rb, line 16
def update_submission_with_best_score
  return unless @submission
  best_score = @submission.score
  best_grade = @submission.grade
  versions = @submission.versions
  versions.each do |version|
    version_score = YAML.load(version.yaml).stringify_keys['score']
    if version_score.to_f > best_score.to_f
      best_score = version_score
      best_grade = YAML.load(version.yaml).stringify_keys['grade']
    end
  end

  @submission.update_columns({score: best_score, grade: best_grade, published_grade: best_grade, published_score: best_score})
end