replace usages of Quiz#find_or_create_submission with SubmissionManager#find_or_create_submission
fixes: CNVS-12598 test plan: - create a quiz as an instructor - as a student - take quiz - exercise all paths by which a quiz submission is generated - verify that quiz submissions continue to work as before Change-Id: I9fd71679e6c9a45686861609ff481f5f4250cca1 Reviewed-on: https://gerrit.instructure.com/33735 Tested-by: Jenkins <jenkins@instructure.com> Reviewed-by: Derek DeVries <ddevries@instructure.com> QA-Review: Caleb Guanzon <cguanzon@instructure.com> Product-Review: Jason Madsen <jmadsen@instructure.com>
This commit is contained in:
parent
9afac76533
commit
e0a5065086
|
@ -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]
|
||||
|
|
|
@ -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 = []
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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"=>"<p>true?</p>"}
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue