Add option to suppress feedback messages

This is used to dynamically exclude some test results from being shown to users, but still allows them to run in the background (e.g., for research).
This commit is contained in:
Sebastian Serth
2023-07-27 10:38:49 +02:00
parent 5faf5be033
commit db56a690c7
9 changed files with 20 additions and 35 deletions

View File

@ -49,6 +49,7 @@ module CodeOcean
validates :feedback_message, absence: true, unless: :teacher_defined_assessment?
validates :hashed_content, if: :content_present?, presence: true
validates :hidden, inclusion: [true, false]
validates :hidden_feedback, inclusion: [true, false]
validates :name, presence: true
validates :read_only, inclusion: [true, false]
validates :role, inclusion: {in: ROLES}

View File

@ -283,7 +283,7 @@ class Submission < ApplicationRecord
end
output.merge!(assessment)
output.merge!(filename:, message: feedback_message(file, output), weight: file.weight)
output.merge!(filename:, message: feedback_message(file, output), weight: file.weight, hidden_feedback: file.hidden_feedback)
output.except!(:messages)
end
@ -329,12 +329,6 @@ class Submission < ApplicationRecord
end
end
# Return all test results except for those of a linter if not allowed
show_linter = Python20CourseWeek.show_linter? exercise
outputs&.reject do |output|
next if show_linter || output.blank?
output[:file_role] == 'teacher_defined_linter'
end
outputs&.reject {|output| output[:hidden_feedback] if output.present? }
end
end