diff --git a/app/coffeescripts/views/assignments/DueDateOverride.coffee b/app/coffeescripts/views/assignments/DueDateOverride.coffee index 0ab79c0e00b67..280804be1ebe8 100644 --- a/app/coffeescripts/views/assignments/DueDateOverride.coffee +++ b/app/coffeescripts/views/assignments/DueDateOverride.coffee @@ -60,7 +60,7 @@ define [ multipleGradingPeriodsEnabled: @multipleGradingPeriodsEnabled gradingPeriods: @gradingPeriods userIsAdmin: _.contains(ENV.current_user_roles, "admin"), - postToSIS: @options.postToSIS + postToSIS: @options.postToSIS || data.postToSIS == '1' }) rowErrors = dateValidator.validateDatetimes() errors = _.extend(errors, rowErrors) diff --git a/app/controllers/quizzes/quizzes_controller.rb b/app/controllers/quizzes/quizzes_controller.rb index 8e5037b1106d1..a89eb12f7cce2 100644 --- a/app/controllers/quizzes/quizzes_controller.rb +++ b/app/controllers/quizzes/quizzes_controller.rb @@ -264,7 +264,8 @@ def new hash = { :MAX_NAME_LENGTH_REQUIRED_FOR_ACCOUNT => max_name_length_required_for_account, - :MAX_NAME_LENGTH => max_name_length + :MAX_NAME_LENGTH => max_name_length, + :DUE_DATE_REQUIRED_FOR_ACCOUNT => AssignmentUtil.due_date_required_for_account?(@quiz), } js_env(hash) @@ -277,7 +278,6 @@ def edit return render_unauthorized_action if editing_restricted?(@quiz) add_crumb(@quiz.title, named_context_url(@context, :context_quiz_url, @quiz)) @assignment = @quiz.assignment - @quiz.title = params[:title] if params[:title] @quiz.due_at = params[:due_at] if params[:due_at] @quiz.assignment_group_id = params[:assignment_group_id] if params[:assignment_group_id] @@ -302,6 +302,7 @@ def edit :ASSIGNMENT_OVERRIDES => assignment_overrides_json(@quiz.overrides_for(@current_user, ensure_set_not_empty: true), @current_user), + :DUE_DATE_REQUIRED_FOR_ACCOUNT => AssignmentUtil.due_date_required_for_account?(@quiz), :QUIZ => quiz_json(@quiz, @context, @current_user, session), :SECTION_LIST => sections.map { |section| { diff --git a/public/javascripts/quizzes.js b/public/javascripts/quizzes.js index a8e5c2d056a7f..7962d4a88e943 100644 --- a/public/javascripts/quizzes.js +++ b/public/javascripts/quizzes.js @@ -1815,7 +1815,8 @@ define([ var overrides = overrideView.getOverrides(); data['quiz[only_visible_to_overrides]'] = overrideView.containsSectionsWithoutOverrides(); var validationData = { - assignment_overrides: overrideView.getAllDates() + assignment_overrides: overrideView.getAllDates(), + postToSIS: data['quiz[post_to_sis]'] }; var errs = overrideView.validateBeforeSave(validationData,{}); if (_.keys(errs).length > 0) { diff --git a/spec/controllers/quizzes/quizzes_controller_spec.rb b/spec/controllers/quizzes/quizzes_controller_spec.rb index 29d04850e940d..848e3575c9021 100644 --- a/spec/controllers/quizzes/quizzes_controller_spec.rb +++ b/spec/controllers/quizzes/quizzes_controller_spec.rb @@ -124,6 +124,20 @@ def logged_out_survey_with_submission(user, questions, &block) assert_unauthorized end + it "js_env DUE_DATE_REQUIRED_FOR_ACCOUNT is true when AssignmentUtil.due_date_required_for_account? == true" do + user_session(@teacher) + AssignmentUtil.stubs(:due_date_required_for_account?).returns(true) + get 'new', :course_id => @course.id + expect(assigns[:js_env][:DUE_DATE_REQUIRED_FOR_ACCOUNT]).to eq(true) + end + + it "js_env DUE_DATE_REQUIRED_FOR_ACCOUNT is false when AssignmentUtil.due_date_required_for_account? == false" do + user_session(@teacher) + AssignmentUtil.stubs(:due_date_required_for_account?).returns(false) + get 'new', :course_id => @course.id + expect(assigns[:js_env][:DUE_DATE_REQUIRED_FOR_ACCOUNT]).to eq(false) + end + it "should assign variables" do user_session(@teacher) get 'new', :course_id => @course.id @@ -196,6 +210,20 @@ def logged_out_survey_with_submission(user, questions, &block) expect(response).to render_template("new") end + it "js_env DUE_DATE_REQUIRED_FOR_ACCOUNT is true when AssignmentUtil.due_date_required_for_account? == true" do + user_session(@teacher) + AssignmentUtil.stubs(:due_date_required_for_account?).returns(true) + get 'edit', :course_id => @course.id, :id => @quiz.id + expect(assigns[:js_env][:DUE_DATE_REQUIRED_FOR_ACCOUNT]).to eq(true) + end + + it "js_env DUE_DATE_REQUIRED_FOR_ACCOUNT is false when AssignmentUtil.due_date_required_for_account? == false" do + user_session(@teacher) + AssignmentUtil.stubs(:due_date_required_for_account?).returns(false) + get 'edit', :course_id => @course.id, :id => @quiz.id + expect(assigns[:js_env][:DUE_DATE_REQUIRED_FOR_ACCOUNT]).to eq(false) + end + it "js_env MAX_NAME_LENGTH_REQUIRED_FOR_ACCOUNT is true when AssignmentUtil.name_length_required_for_account? == true" do user_session(@teacher) AssignmentUtil.stubs(:name_length_required_for_account?).returns(true)