make ‘has_assignment_group’ cache key live longer
Change-Id: I8ee6f88e44f492b7471c1a6648339cac57c1886f Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/218102 Reviewed-by: Steven Burnett <sburnett@instructure.com> Reviewed-by: James Williams <jamesw@instructure.com> Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com> Tested-by: Jenkins QA-Review: Ryan Shaw <ryan@instructure.com> Product-Review: Ryan Shaw <ryan@instructure.com>
This commit is contained in:
parent
996121940b
commit
ad67048b2b
|
@ -57,6 +57,7 @@ class AssignmentGroup < ActiveRecord::Base
|
|||
after_save :update_student_grades
|
||||
|
||||
before_destroy :destroy_scores
|
||||
after_destroy :clear_context_has_assignment_group_cache
|
||||
|
||||
def generate_default_values
|
||||
if self.name.blank?
|
||||
|
@ -164,6 +165,11 @@ class AssignmentGroup < ActiveRecord::Base
|
|||
true
|
||||
end
|
||||
|
||||
# this is just in case we happen to delete the last assignment_group in a course
|
||||
def clear_context_has_assignment_group_cache
|
||||
Rails.cache.delete(['has_assignment_group', global_context_id].cache_key) if context_id
|
||||
end
|
||||
|
||||
set_broadcast_policy do |p|
|
||||
p.dispatch :grade_weight_changed
|
||||
p.to { context.participating_students_by_date }
|
||||
|
|
|
@ -1358,13 +1358,14 @@ class Course < ActiveRecord::Base
|
|||
|
||||
def require_assignment_group
|
||||
shard.activate do
|
||||
return if Rails.cache.read(['has_assignment_group', self].cache_key)
|
||||
key = ['has_assignment_group', self.global_id].cache_key
|
||||
return if Rails.cache.read(key)
|
||||
if self.assignment_groups.active.empty?
|
||||
Shackles.activate(:master) do
|
||||
self.assignment_groups.create!(name: t('#assignment_group.default_name', "Assignments"))
|
||||
end
|
||||
end
|
||||
Rails.cache.write(['has_assignment_group', self].cache_key, true)
|
||||
Rails.cache.write(key, true)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue