remove grade_calculator_performance_improvements release flag
closes EVAL-1285 flag=grade_calculator_performance_improvements Test Plan: - specs pass Change-Id: Ic60680a0bf9936b0b39b728b8caf93ffc90e6b84 Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/251886 Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com> Reviewed-by: Kai Bjorkman <kbjorkman@instructure.com> Reviewed-by: Adrian Packel <apackel@instructure.com> Product-Review: Syed Hussain <shussain@instructure.com> QA-Review: Spencer Olson <solson@instructure.com>
This commit is contained in:
parent
11dae30497
commit
6929c029f9
|
@ -24,11 +24,6 @@ datadog_rum_js:
|
||||||
applies_to: SiteAdmin
|
applies_to: SiteAdmin
|
||||||
display_name: Datadog RUM JS Agent
|
display_name: Datadog RUM JS Agent
|
||||||
description: Include the Datadog RUM JS Agent in the document HEAD.
|
description: Include the Datadog RUM JS Agent in the document HEAD.
|
||||||
grade_calculator_performance_improvements:
|
|
||||||
state: hidden
|
|
||||||
applies_to: SiteAdmin
|
|
||||||
display_name: Grade Calculator Performance Improvements
|
|
||||||
description: Performance improvements for the grade calculation process.
|
|
||||||
gradebook_dataloader_improvements:
|
gradebook_dataloader_improvements:
|
||||||
state: hidden
|
state: hidden
|
||||||
applies_to: SiteAdmin
|
applies_to: SiteAdmin
|
||||||
|
|
|
@ -133,24 +133,13 @@ class GradeCalculator
|
||||||
# done after calculate_hidden_scores -- so changes in that inner call are also captured. But
|
# done after calculate_hidden_scores -- so changes in that inner call are also captured. But
|
||||||
# it must be done before calculate_course_score so if @update_course_score is true (we are
|
# it must be done before calculate_course_score so if @update_course_score is true (we are
|
||||||
# scoring a grading period, not a course) we don't trigger an additional alert/live event here.
|
# scoring a grading period, not a course) we don't trigger an additional alert/live event here.
|
||||||
if performance_improvements_enabled?
|
create_course_grade_alerts_and_live_events(scores_prior_to_compute)
|
||||||
create_course_grade_alerts_and_live_events(scores_prior_to_compute)
|
|
||||||
else
|
|
||||||
old_create_course_grade_alerts_and_live_events(scores_prior_to_compute)
|
|
||||||
end
|
|
||||||
|
|
||||||
calculate_course_score if @update_course_score
|
calculate_course_score if @update_course_score
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# TODO: delete this method once grade_calculator_performance_improvements is enabled everywhere
|
|
||||||
def performance_improvements_enabled?
|
|
||||||
return @performance_improvements_enabled if defined?(@performance_improvements_enabled)
|
|
||||||
|
|
||||||
@performance_improvements_enabled = Account.site_admin.feature_enabled?(:grade_calculator_performance_improvements)
|
|
||||||
end
|
|
||||||
|
|
||||||
def effective_due_dates
|
def effective_due_dates
|
||||||
@effective_due_dates ||= EffectiveDueDates.for_course(@course, @assignments).filter_students_to(@user_ids)
|
@effective_due_dates ||= EffectiveDueDates.for_course(@course, @assignments).filter_students_to(@user_ids)
|
||||||
end
|
end
|
||||||
|
@ -162,21 +151,6 @@ class GradeCalculator
|
||||||
uniq
|
uniq
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: delete this method once grade_calculator_performance_improvements is enabled everywhere
|
|
||||||
def old_create_course_grade_alerts_and_live_events(scores)
|
|
||||||
@course.shard.activate do
|
|
||||||
ActiveRecord::Associations::Preloader.new.preload(scores, :enrollment)
|
|
||||||
# Make only one alert per user even if they have multiple enrollments (sections in same course)
|
|
||||||
scores = scores.uniq{|s| s.enrollment.user_id}
|
|
||||||
reloaded_scores = Score.where(id: scores.map(&:id)).index_by(&:id)
|
|
||||||
scores.each do |score|
|
|
||||||
# Note: only the old score has enrollment pre-loaded
|
|
||||||
create_course_grade_live_event(score, reloaded_scores[score.id]) if @emit_live_event
|
|
||||||
old_create_course_grade_alert(score, reloaded_scores[score.id])
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_course_grade_alerts_and_live_events(scores)
|
def create_course_grade_alerts_and_live_events(scores)
|
||||||
@course.shard.activate do
|
@course.shard.activate do
|
||||||
ActiveRecord::Associations::Preloader.new.preload(scores, :enrollment)
|
ActiveRecord::Associations::Preloader.new.preload(scores, :enrollment)
|
||||||
|
@ -214,25 +188,6 @@ class GradeCalculator
|
||||||
Canvas::LiveEvents.course_grade_change(score, old_score_values, old_score.enrollment)
|
Canvas::LiveEvents.course_grade_change(score, old_score_values, old_score.enrollment)
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: delete this method once grade_calculator_performance_improvements is enabled everywhere
|
|
||||||
def old_create_course_grade_alert(old_score, score)
|
|
||||||
# Use preloaded enrollment in old_score
|
|
||||||
thresholds = ObserverAlertThreshold.active.where(student: old_score.enrollment.user_id, alert_type: ['course_grade_high', 'course_grade_low'])
|
|
||||||
|
|
||||||
thresholds.each do |threshold|
|
|
||||||
next unless threshold.did_pass_threshold(old_score.current_score, score.current_score)
|
|
||||||
next unless threshold.observer.enrollments.where(course_id: @course.id).first.present?
|
|
||||||
|
|
||||||
ObserverAlert.create(observer: threshold.observer, student: threshold.student,
|
|
||||||
observer_alert_threshold: threshold,
|
|
||||||
context: @course, action_date: score.updated_at, alert_type: threshold.alert_type,
|
|
||||||
title: I18n.t("Course grade: %{grade}% in %{course_code}", {
|
|
||||||
grade: score.current_score,
|
|
||||||
course_code: @course.course_code
|
|
||||||
}))
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def create_course_grade_alert(old_score, score, thresholds)
|
def create_course_grade_alert(old_score, score, thresholds)
|
||||||
thresholds.each do |threshold|
|
thresholds.each do |threshold|
|
||||||
next unless threshold.did_pass_threshold(old_score.current_score, score.current_score)
|
next unless threshold.did_pass_threshold(old_score.current_score, score.current_score)
|
||||||
|
|
|
@ -22,7 +22,6 @@ require_relative '../sharding_spec_helper'
|
||||||
|
|
||||||
describe GradeCalculator do
|
describe GradeCalculator do
|
||||||
before :once do
|
before :once do
|
||||||
Account.site_admin.enable_feature!(:grade_calculator_performance_improvements)
|
|
||||||
course_with_student active_all: true
|
course_with_student active_all: true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,6 @@ require_relative '../sharding_spec_helper'
|
||||||
|
|
||||||
describe GradeCalculator do
|
describe GradeCalculator do
|
||||||
before :once do
|
before :once do
|
||||||
Account.site_admin.enable_feature!(:grade_calculator_performance_improvements)
|
|
||||||
course_with_student active_all: true
|
course_with_student active_all: true
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -351,7 +351,6 @@ describe Lti::LtiOutboundAdapter do
|
||||||
let(:enrollment) { StudentEnrollment.create!(user: user, course: course, workflow_state: 'active') }
|
let(:enrollment) { StudentEnrollment.create!(user: user, course: course, workflow_state: 'active') }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
allow(Account.site_admin).to receive(:feature_enabled?).with(:grade_calculator_performance_improvements).and_return(true)
|
|
||||||
allow(BasicLTI::Sourcedid).to receive(:encryption_secret) {'encryption-secret-5T14NjaTbcYjc4'}
|
allow(BasicLTI::Sourcedid).to receive(:encryption_secret) {'encryption-secret-5T14NjaTbcYjc4'}
|
||||||
allow(BasicLTI::Sourcedid).to receive(:signing_secret) {'signing-secret-vp04BNqApwdwUYPUI'}
|
allow(BasicLTI::Sourcedid).to receive(:signing_secret) {'signing-secret-vp04BNqApwdwUYPUI'}
|
||||||
assignment.update!(
|
assignment.update!(
|
||||||
|
|
|
@ -23,10 +23,6 @@ describe ObserverAlert do
|
||||||
include Api
|
include Api
|
||||||
include Api::V1::ObserverAlertThreshold
|
include Api::V1::ObserverAlertThreshold
|
||||||
|
|
||||||
before(:each) do
|
|
||||||
Account.site_admin.enable_feature!(:grade_calculator_performance_improvements)
|
|
||||||
end
|
|
||||||
|
|
||||||
describe 'validations' do
|
describe 'validations' do
|
||||||
before :once do
|
before :once do
|
||||||
@student = user_model
|
@student = user_model
|
||||||
|
|
Loading…
Reference in New Issue