do not allow GB1 when course enrollments are > 250
closes #CNVS-3926 test plan: - open app/models/course.rb and change LARGE_ROSTER_THRESHOLD from 250 to 0 - go to the gradebook for any course - gradebook 1 should not be an option Change-Id: I0c1cc13f6347c3f47be4c6e6825b01890e1b56ad Reviewed-on: https://gerrit.instructure.com/17869 Reviewed-by: Jon Jensen <jon@instructure.com> Tested-by: Jenkins <jenkins@instructure.com> QA-Review: Cam Theriault <cam@instructure.com>
This commit is contained in:
parent
2ca3234404
commit
4ccd7e54e7
|
@ -2854,7 +2854,7 @@ class Course < ActiveRecord::Base
|
|||
opts[:default] ||= false
|
||||
cast_expression = "Canvas::Plugin.value_to_boolean(val)"
|
||||
end
|
||||
class_eval <<-CODE
|
||||
class_eval <<-CODE, __FILE__, __LINE__ + 1
|
||||
def #{setting}
|
||||
if settings_frd[#{setting.inspect}].nil? && !@disable_setting_defaults
|
||||
default = Course.settings_options[#{setting.inspect}][:default]
|
||||
|
@ -2885,6 +2885,16 @@ class Course < ActiveRecord::Base
|
|||
add_setting :lock_all_announcements, :boolean => true, :default => false
|
||||
add_setting :large_roster, :boolean => true, :default => lambda { |c| c.root_account.large_course_rosters? }
|
||||
|
||||
LARGE_ROSTER_THRESHOLD = 250
|
||||
alias_method :orig_large_roster, :large_roster
|
||||
def large_roster
|
||||
orig_large_roster || (
|
||||
student_count = Rails.cache.fetch(['student_count', self].cache_key) { students.count }
|
||||
student_count > LARGE_ROSTER_THRESHOLD
|
||||
)
|
||||
end
|
||||
alias_method :large_roster?, :large_roster
|
||||
|
||||
def user_can_manage_own_discussion_posts?(user)
|
||||
return true if allow_student_discussion_editing?
|
||||
return true if user_is_instructor?(user)
|
||||
|
|
|
@ -53,6 +53,15 @@ describe Course do
|
|||
@course.should_not be_soft_concluded
|
||||
end
|
||||
|
||||
context "#large_roster?" do
|
||||
it "should return true when enrollment count is large enough" do
|
||||
@course.large_roster = false
|
||||
@course.large_roster?.should be_false
|
||||
@course.students.stubs(:count).returns(Course::LARGE_ROSTER_THRESHOLD + 1)
|
||||
@course.large_roster?.should be_true
|
||||
end
|
||||
end
|
||||
|
||||
describe "allow_student_discussion_topics" do
|
||||
|
||||
it "should default true" do
|
||||
|
|
Loading…
Reference in New Issue