dashboard: hide stream items from concluded courses
fixes CNVS-1485 test plan: * verify that stream items show up on the dashboard * create a term with an end date in the past * assign a course to that term * verify that items from that course are no longer on the dashboard Change-Id: I9851997c9672f73335f54bdba78bdb71ee24d029 Reviewed-on: https://gerrit.instructure.com/33264 Tested-by: Jenkins <jenkins@instructure.com> Reviewed-by: Joel Hough <joel@instructure.com> QA-Review: Trevor deHaan <tdehaan@instructure.com> Product-Review: Braden Anderson <banderson@instructure.com>
This commit is contained in:
parent
af9e8d900b
commit
251fe0a7b7
|
@ -474,7 +474,7 @@ class ApplicationController < ActionController::Base
|
|||
# again.
|
||||
courses = @context.current_enrollments.with_each_shard.select { |e| e.state_based_on_date == :active }.map(&:course).uniq
|
||||
groups = opts[:include_groups] ? @context.current_groups.with_each_shard.reject{|g| g.context_type == "Course" &&
|
||||
(g.context.completed? || g.context.soft_concluded?)} : []
|
||||
g.context.concluded?} : []
|
||||
if only_contexts.present?
|
||||
# find only those courses and groups passed in the only_contexts
|
||||
# parameter, but still scoped by user so we know they have rights to
|
||||
|
|
|
@ -204,9 +204,9 @@ class ContextController < ApplicationController
|
|||
},
|
||||
:course => {
|
||||
:id => @context.id,
|
||||
:completed => (completed = @context.completed?),
|
||||
:soft_concluded => (soft_concluded = @context.soft_concluded?),
|
||||
:concluded => completed || soft_concluded,
|
||||
:completed => @context.completed?,
|
||||
:soft_concluded => @context.soft_concluded?,
|
||||
:concluded => @context.concluded?,
|
||||
:teacherless => @context.teacherless?,
|
||||
:available => @context.available?,
|
||||
:pendingInvitationsCount => @context.invited_count_visible_to(@current_user)
|
||||
|
|
|
@ -1466,7 +1466,7 @@ class CoursesController < ApplicationController
|
|||
:root_account => @context.root_account,
|
||||
:search_method => @context.user_list_search_mode_for(@current_user),
|
||||
:initial_type => params[:enrollment_type])
|
||||
if !(@context.completed? || @context.soft_concluded?) && (@enrollments = EnrollmentsFromUserList.process(list, @context, enrollment_options))
|
||||
if !@context.concluded? && (@enrollments = EnrollmentsFromUserList.process(list, @context, enrollment_options))
|
||||
Enrollment.send(:preload_associations, @enrollments, [:course_section, {:user => [:communication_channel, :pseudonym]}])
|
||||
json = @enrollments.map { |e|
|
||||
{ 'enrollment' =>
|
||||
|
|
|
@ -313,7 +313,7 @@ class EnrollmentsApiController < ApplicationController
|
|||
|
||||
errors << @@errors[:missing_user_id] unless params[:enrollment][:user_id].present?
|
||||
end
|
||||
errors << @@errors[:concluded_course] if @context.completed? || @context.soft_concluded?
|
||||
errors << @@errors[:concluded_course] if @context.concluded?
|
||||
return render_create_errors(errors) if errors.present?
|
||||
|
||||
# create enrollment
|
||||
|
|
|
@ -1159,6 +1159,10 @@ class Course < ActiveRecord::Base
|
|||
self.restrict_enrollments_to_course_dates = true
|
||||
end
|
||||
|
||||
def concluded?
|
||||
completed? || soft_concluded?
|
||||
end
|
||||
|
||||
def state_sortable
|
||||
case state
|
||||
when :invited
|
||||
|
|
|
@ -1837,12 +1837,13 @@ class User < ActiveRecord::Base
|
|||
self.shard.activate do
|
||||
Shackles.activate(:slave) do
|
||||
visible_instances = visible_stream_item_instances(opts).
|
||||
includes(:stream_item).
|
||||
includes(:stream_item => :context).
|
||||
limit(Setting.get('recent_stream_item_limit', 100))
|
||||
visible_instances.map do |sii|
|
||||
si = sii.stream_item
|
||||
next unless si.present?
|
||||
next if si.asset_type == 'Submission'
|
||||
next if si.context_type == "Course" && si.context.concluded?
|
||||
si.data.write_attribute(:unread, sii.unread?)
|
||||
si
|
||||
end.compact
|
||||
|
|
|
@ -156,6 +156,15 @@ describe User do
|
|||
@user.recent_stream_items.size.should == 0
|
||||
end
|
||||
|
||||
it "should ignore stream item instances from concluded courses" do
|
||||
course_with_teacher(:active_all => true)
|
||||
google_docs_collaboration_model(:user_id => @user.id)
|
||||
@user.recent_stream_items.size.should == 1
|
||||
@course.soft_conclude!
|
||||
@course.save
|
||||
@user.recent_stream_items.size.should == 0
|
||||
end
|
||||
|
||||
describe "#recent_stream_items" do
|
||||
it "should skip submission stream items" do
|
||||
course_with_teacher(:active_all => true)
|
||||
|
|
Loading…
Reference in New Issue