Distinguish between intermediate and final feedback
* Also add more information to user_exercise_feedback * Migrate existing feedback to enrich with submissions
This commit is contained in:
@ -0,0 +1,23 @@
|
||||
class AddNormalizedScoreAndSubmissionToUserExerciseFeedback < ActiveRecord::Migration[5.2]
|
||||
def change
|
||||
add_column :user_exercise_feedbacks, :normalized_score, :float
|
||||
add_reference :user_exercise_feedbacks, :submission, foreign_key: true
|
||||
|
||||
# Disable automatic timestamp modification
|
||||
ActiveRecord::Base.record_timestamps = false
|
||||
UserExerciseFeedback.all.find_each do |uef|
|
||||
latest_submission = Submission
|
||||
.where(user_id: uef.user_id, user_type: uef.user_type, exercise_id: uef.exercise_id)
|
||||
.where('created_at < ?', uef.updated_at)
|
||||
.order(created_at: :desc).first
|
||||
|
||||
# In the beginning, CodeOcean allowed feedback for exercises while viewing an RfC. As a RfC
|
||||
# might be opened by any registered learner, feedback for exercises was created by learners
|
||||
# without having any submission for this particular exercise.
|
||||
next if latest_submission.nil?
|
||||
|
||||
uef.update(submission: latest_submission, normalized_score: latest_submission.normalized_score)
|
||||
end
|
||||
ActiveRecord::Base.record_timestamps = true
|
||||
end
|
||||
end
|
@ -10,7 +10,7 @@
|
||||
#
|
||||
# It's strongly recommended that you check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(version: 2020_10_07_104221) do
|
||||
ActiveRecord::Schema.define(version: 2020_10_19_090123) do
|
||||
|
||||
# These are extensions that must be enabled in order to support this database
|
||||
enable_extension "plpgsql"
|
||||
@ -423,6 +423,9 @@ ActiveRecord::Schema.define(version: 2020_10_07_104221) do
|
||||
t.integer "user_estimated_worktime"
|
||||
t.datetime "created_at", null: false
|
||||
t.datetime "updated_at", null: false
|
||||
t.float "normalized_score"
|
||||
t.bigint "submission_id"
|
||||
t.index ["submission_id"], name: "index_user_exercise_feedbacks_on_submission_id"
|
||||
end
|
||||
|
||||
create_table "user_exercise_interventions", id: :serial, force: :cascade do |t|
|
||||
@ -455,4 +458,5 @@ ActiveRecord::Schema.define(version: 2020_10_07_104221) do
|
||||
add_foreign_key "request_for_comments", "submissions", name: "request_for_comments_submissions_id_fk"
|
||||
add_foreign_key "submissions", "study_groups"
|
||||
add_foreign_key "tips", "file_types"
|
||||
add_foreign_key "user_exercise_feedbacks", "submissions"
|
||||
end
|
||||
|
Reference in New Issue
Block a user