Skip to content

Commit e4b5d34

Browse files
committed
save user course sort preference in the right db instance
test plan: sanity check sorting courses on the Accounts page. The actual issue this commit fixes cannot be reproduced except in production-like environments with master/slave databases. fixes CNVS-34303 Change-Id: I92211a766600bcf811bbc268c95b92b0924a67cb Reviewed-on: https://gerrit.instructure.com/99524 Reviewed-by: James Williams <jamesw@instructure.com> QA-Review: Heath Hales <hhales@instructure.com> Tested-by: Jenkins Product-Review: Jeremy Stanley <jeremy@instructure.com>
1 parent 907a209 commit e4b5d34

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

app/controllers/accounts_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -923,12 +923,13 @@ def courses_redirect
923923

924924
def courses
925925
if authorized_action(@context, @current_user, :read)
926+
order = sort_order # must be done on master because it persists in user preferences
926927
Shackles.activate(:slave) do
927928
load_course_right_side
928929
@courses = []
929930
@query = (params[:course] && params[:course][:name]) || params[:term]
930931
if @context && @context.is_a?(Account) && @query
931-
@courses = @context.courses_name_like(@query, :order => sort_order, :term => @term,
932+
@courses = @context.courses_name_like(@query, :order => order, :term => @term,
932933
:hide_enrollmentless_courses => @hide_enrollmentless_courses,
933934
:only_master_courses => @only_master_courses)
934935
end

spec/controllers/accounts_controller_spec.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,7 @@ def cross_listed_course
249249
course_with_teacher(:account => @account)
250250
Account.any_instance.expects(:fast_all_courses).with(has_entry(order: "courses.created_at DESC"))
251251
get 'show', :id => @account.id, :courses_sort_order => "created_at_desc", :format => 'html'
252+
expect(@admin.reload.preferences[:course_sort]).to eq 'created_at_desc'
252253
end
253254

254255
it 'can search and sort simultaneously' do
@@ -259,6 +260,7 @@ def cross_listed_course
259260
@account.courses.create! name: 'bleh Z'
260261
get 'courses', :account_id => @account.id, :course => { :name => 'blah' }, :courses_sort_order => 'name_desc', :format => 'html'
261262
expect(assigns['courses'].map(&:name)).to eq(['blah C', 'blah B', 'blah A'])
263+
expect(@admin.reload.preferences[:course_sort]).to eq 'name_desc'
262264
end
263265
end
264266

0 commit comments

Comments
 (0)