make submission course_id not null

Change-Id: I1f6445fa5898c6a9a757a7f7e643ada491703757
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/234611
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
QA-Review: James Williams <jamesw@instructure.com>
Product-Review: James Williams <jamesw@instructure.com>
Reviewed-by: Cody Cutrer <cody@instructure.com>
This commit is contained in:
James Williams 2020-04-19 20:05:15 -06:00
parent e676f78d34
commit 40550bdcb8
4 changed files with 23 additions and 2 deletions

View File

@ -0,0 +1,16 @@
class MakeSubmissionCourseIdNotNull < ActiveRecord::Migration[5.2]
tag :predeploy
disable_ddl_transaction!
def up
Submission.find_ids_in_ranges(:batch_size => 100_000) do |start_at, end_at|
next unless Shackles.activate(:slave) { Submission.where(:id => start_at..end_at, :course_id => nil).exists? }
DataFixup::PopulateCourseIdOnSubmissions.run(start_at, end_at)
end
change_column_null(:submissions, :course_id, false)
end
def down
change_column_null(:submissions, :course_id, true)
end
end

View File

@ -379,6 +379,7 @@ describe UsersController, type: :request do
batch << {
cached_due_date: a.due_date,
assignment_id: a.id,
course_id: @student_course.id,
user_id: @teacher.id,
workflow_state: 'unsubmitted'
}
@ -408,6 +409,7 @@ describe UsersController, type: :request do
batch << {
cached_due_date: a.due_at,
assignment_id: a.id,
course_id: @teacher_course.id,
user_id: @student.id,
workflow_state: 'submitted',
submission_type: 'online_text_entry',
@ -479,6 +481,7 @@ describe UsersController, type: :request do
assignments.each do |a|
batch << { :cached_due_date => 6.days.from_now,
:assignment_id => a.id,
:course_id => a.context_id,
:user_id => @user.id,
:workflow_state => 'unsubmitted' }
end

View File

@ -5313,9 +5313,9 @@ describe Submission do
student.submissions.destroy_all
create_sql = "INSERT INTO #{Submission.quoted_table_name}
(assignment_id, user_id, workflow_state, created_at, updated_at, context_code)
(assignment_id, user_id, workflow_state, created_at, updated_at, context_code, course_id)
values
(#{@assignment.id}, #{student.id}, 'unsubmitted', now(), now(), '#{@assignment.context_code}')"
(#{@assignment.id}, #{student.id}, 'unsubmitted', now(), now(), '#{@assignment.context_code}', #{@assignment.context_id})"
sub = Submission.find(Submission.connection.create(create_sql))
expect(sub.submission_history).to eq([sub])

View File

@ -690,10 +690,12 @@ describe UserLearningObjectScopes do
create_records(Submission, assignment_ids.map do |id|
{
assignment_id: id,
course_id: @course1.id,
user_id: @student_b.id,
body: "hello",
workflow_state: "submitted",
submission_type: 'online_text_entry'
}
end)
expect(@teacher.assignments_needing_grading.size).to eq 15