update submissions with null submission type

when creating submissions during cleanup, if a submission with null
submission type (indicating the assignment was graded or commented on
for that student, despite lack of submission) exists, update it instead
of trying to create a new conflicting submission.

Change-Id: I3fc7a4a1eba4341d8ad6f0551754a92c93082a61
test-plan:
 * create graded discussion
 * have student post in discussion, creating a submission
 * in script/console, remove the submission's submission_type
 * run migration
 * note no new submission, but submission_type on existing submission is
   restored
Reviewed-on: https://gerrit.instructure.com/6978
Reviewed-by: Brian Palmer <brianp@instructure.com>
Tested-by: Hudson <hudson@instructure.com>
This commit is contained in:
Jacob Fugal 2011-11-14 15:05:34 -07:00
parent a7f5a9ea1a
commit a88081100b
1 changed files with 7 additions and 6 deletions

View File

@ -64,15 +64,16 @@ class EnsureSubmissionsForDiscussions < ActiveRecord::Migration
SQL
group_id = group && group.id
homework = Submission.new(
:assignment_id => assignment.id,
:user_id => entry.user_id,
:group_id => group_id,
:submission_type => 'discussion_topic',
homework = Submission.find_or_initialize_by_assignment_id_and_user_id(assignment.id, entry.user_id)
homework.grade_matches_current_submission = homework.score ? false : true
homework.attributes = {
:attachment => nil,
:processed => false,
:process_attempts => 0,
:workflow_state => "submitted")
:workflow_state => "submitted",
:group_id => group_id,
:submission_type => 'discussion_topic'
}
# don't broadcast due to these fixes, period.
homework.with_versioning(:explicit => true) do