Skip to content

Commit 20739b1

Browse files
committed
fix user upcoming events for more than 20 assignments
test plan: * when a user has more than 20 assignments with upcoming due dates, the earliest events should always be shown first closes #CNVS-29897 frd Change-Id: Ic1a7c611c98bae5c2d31ac696e0f45560e46adb9 Reviewed-on: https://gerrit.instructure.com/91077 Tested-by: Jenkins Reviewed-by: Jeremy Stanley <jeremy@instructure.com> QA-Review: David Tan <dtan@instructure.com> Product-Review: James Williams <jamesw@instructure.com>
1 parent fe8b81f commit 20739b1

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

app/models/user.rb

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,15 +1994,16 @@ def upcoming_events(opts={})
19941994
end
19951995

19961996
events += select_available_assignments(
1997-
select_upcoming_assignments(assignments.map {|a| a.overridden_for(self)}, opts.merge(:time => now)).
1998-
first(opts[:limit]))
1997+
select_upcoming_assignments(assignments.map {|a| a.overridden_for(self)}, opts.merge(:time => now))
1998+
)
1999+
19992000
end
20002001
events.sort_by{|e| [e.start_at ? 0: 1,e.start_at || 0, Canvas::ICU.collation_key(e.title)] }.uniq.first(opts[:limit])
20012002
end
20022003

20032004
def select_available_assignments(assignments)
20042005
return [] if assignments.empty?
2005-
available_course_ids = Shard.partition_by_shard(assignments.map(&:context_id)) do |course_ids|
2006+
available_course_ids = Shard.partition_by_shard(assignments.map(&:context_id).uniq) do |course_ids|
20062007
self.enrollments.shard(Shard.current).where(course_id: course_ids).active_by_date.pluck(:course_id)
20072008
end
20082009
assignments.select {|a| available_course_ids.include?(a.context_id) }

0 commit comments

Comments
 (0)