diff --git a/app/controllers/quizzes/quiz_submissions_controller.rb b/app/controllers/quizzes/quiz_submissions_controller.rb index 7da2a47314c..35f102d803d 100644 --- a/app/controllers/quizzes/quiz_submissions_controller.rb +++ b/app/controllers/quizzes/quiz_submissions_controller.rb @@ -133,7 +133,7 @@ class Quizzes::QuizSubmissionsController < ApplicationController def extensions @student = @context.students.find(params[:user_id]) - @submission = @quiz.find_or_create_submission(@student || @current_user, nil, 'settings_only') + @submission = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@student || @current_user, nil, 'settings_only') if authorized_action(@submission, @current_user, :add_attempts) @submission.extra_attempts ||= 0 @submission.extra_attempts = params[:extra_attempts].to_i if params[:extra_attempts] diff --git a/app/models/quizzes/quiz.rb b/app/models/quizzes/quiz.rb index 14275fce53e..c7d289d8555 100644 --- a/app/models/quizzes/quiz.rb +++ b/app/models/quizzes/quiz.rb @@ -632,14 +632,10 @@ class Quizzes::Quiz < ActiveRecord::Base q end - def find_or_create_submission(user, temporary=false, state=nil) - Quizzes::SubmissionManager.new(self).find_or_create_submission(user, temporary, state) - end - # Generates a submission for the specified user on this quiz, based # on the SAVED version of the quiz. Does not consider permissions. def generate_submission(user, preview=false) - submission = self.find_or_create_submission(user, preview) + submission = Quizzes::SubmissionManager.new(self).find_or_create_submission(user, preview) submission.retake submission.attempt = (submission.attempt + 1) rescue 1 user_questions = [] diff --git a/spec/controllers/quizzes/quiz_submissions_controller_spec.rb b/spec/controllers/quizzes/quiz_submissions_controller_spec.rb index 0b1a1d1bece..03943d75b75 100644 --- a/spec/controllers/quizzes/quiz_submissions_controller_spec.rb +++ b/spec/controllers/quizzes/quiz_submissions_controller_spec.rb @@ -41,7 +41,7 @@ describe Quizzes::QuizSubmissionsController do @quiz.one_question_at_a_time = true @quiz.cant_go_back = true @quiz.save! - @submission = @quiz.find_or_create_submission(@student) + @submission = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@student) Quizzes::SubmissionGrader.new(@submission).grade_submission post 'create', :course_id => @quiz.context_id, :quiz_id => @quiz.id, :question_123 => 'hi', :validation_token => @submission.validation_token response.should be_redirect @@ -54,7 +54,7 @@ describe Quizzes::QuizSubmissionsController do @quiz.save! access_code_key = @quiz.access_code_key_for_user(@student) session[access_code_key] = true - @submission = @quiz.find_or_create_submission(@student) + @submission = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@student) post 'create', :course_id => @quiz.context_id, :quiz_id => @quiz.id, :question_123 => 'hi', :validation_token => @submission.validation_token session.has_key?(access_code_key).should == false end @@ -62,7 +62,7 @@ describe Quizzes::QuizSubmissionsController do it "should reject a submission when the validation token does not match" do student_in_course(:active_all => true) user_session(@student) - @submission = @quiz.find_or_create_submission(@student) + @submission = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@student) post 'create', :course_id => @quiz.context_id, :quiz_id => @quiz.id, :question_123 => 'hi', :validation_token => "xxx" response.should be_redirect flash[:error].should_not be_blank diff --git a/spec/controllers/quizzes/quizzes_controller_spec.rb b/spec/controllers/quizzes/quizzes_controller_spec.rb index 509de540c08..0db598aa5bd 100644 --- a/spec/controllers/quizzes/quizzes_controller_spec.rb +++ b/spec/controllers/quizzes/quizzes_controller_spec.rb @@ -601,7 +601,7 @@ describe Quizzes::QuizzesController do course_quiz(true) @quiz.locked = true @quiz.save! - @sub = @quiz.find_or_create_submission(@user, nil, 'settings_only') + @sub = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@user, nil, 'settings_only') @sub.manually_unlocked = true @sub.save! post 'show', :course_id => @course, :quiz_id => @quiz.id, :take => '1' @@ -625,7 +625,7 @@ describe Quizzes::QuizzesController do course_quiz(true) @quiz.time_limit = 60 @quiz.save! - @sub = @quiz.find_or_create_submission(@user, nil, 'settings_only') + @sub = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@user, nil, 'settings_only') @sub.extra_time = 30 @sub.save! post 'show', :course_id => @course, :quiz_id => @quiz.id, :take => '1' diff --git a/spec/factories/quiz_factory.rb b/spec/factories/quiz_factory.rb index 68207c6f87b..5686c191e07 100644 --- a/spec/factories/quiz_factory.rb +++ b/spec/factories/quiz_factory.rb @@ -43,7 +43,7 @@ def quiz_with_submission(complete_quiz = true) @quiz.quiz_data = test_data @quiz.save! @quiz - @qsub = @quiz.find_or_create_submission(@student) + @qsub = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@student) @qsub.quiz_data = test_data @qsub.submission_data = complete_quiz ? [{:points=>0, :text=>"7051", :question_id=>128, :correct=>false, :answer_id=>7051}] : test_data.first # {"context_id"=>"3", "text_after_answers"=>"", "context_type"=>"Course", "attempt"=>1, "user_id"=>"3", "controller"=>"quiz_submissions", "cnt"=>1, "course_id"=>"3", "quiz_id"=>"6", "question_text"=>"
true?
"} diff --git a/spec/integration/concluded_unconcluded_spec.rb b/spec/integration/concluded_unconcluded_spec.rb index 44acceaaee0..dbed476c0ed 100644 --- a/spec/integration/concluded_unconcluded_spec.rb +++ b/spec/integration/concluded_unconcluded_spec.rb @@ -40,7 +40,7 @@ describe "concluded/unconcluded courses" do @assignment = @course.assignments.create!(:submission_types => 'online_quiz', :title => 'quiz assignment', :assignment_group => @group) @quiz = @assignment.reload.quiz @quiz.should_not be_nil - @qsub = @quiz.find_or_create_submission(@student) + @qsub = Quizzes::SubmissionManager.new(@quiz).find_or_create_submission(@student) @qsub.quiz_data = [{:correct_comments=>"", :assessment_question_id=>nil, :incorrect_comments=>"", :question_name=>"Question 1", :points_possible=>1, :question_text=>"Which book(s) are required for this course?", :name=>"Question 1", :id=>128, :answers=>[{:weight=>0, :text=>"A", :comments=>"", :id=>1490}, {:weight=>0, :text=>"B", :comments=>"", :id=>1020}, {:weight=>0, :text=>"C", :comments=>"", :id=>7051}], :question_type=>"multiple_choice_question"}] @qsub.submission_data = [{:points=>0, :text=>"7051", :question_id=>128, :correct=>false, :answer_id=>7051}] @qsub.workflow_state = 'complete' diff --git a/spec/models/quizzes/quiz_spec.rb b/spec/models/quizzes/quiz_spec.rb index 25aba54f2df..c6d882b6aac 100644 --- a/spec/models/quizzes/quiz_spec.rb +++ b/spec/models/quizzes/quiz_spec.rb @@ -598,7 +598,7 @@ describe Quizzes::Quiz do lock_at = 1.day.ago u = User.create!(:name => "Fred Colon") q = @course.quizzes.create!(:title => "locked yesterday", :lock_at => lock_at) - sub = q.find_or_create_submission(u, nil, 'settings_only') + sub = Quizzes::SubmissionManager.new(q).find_or_create_submission(u, nil, 'settings_only') sub.manually_unlocked = true sub.save! sub2 = q.generate_submission(u)