diff --git a/app/collections/LevelSessions.coffee b/app/collections/LevelSessions.coffee index dbbc343a5..20de80e42 100644 --- a/app/collections/LevelSessions.coffee +++ b/app/collections/LevelSessions.coffee @@ -5,12 +5,6 @@ module.exports = class LevelSessionCollection extends CocoCollection url: '/db/level.session' model: LevelSession - fetchMineForCourseInstance: (courseInstanceID, options) -> - options = _.extend({ - url: "/db/course_instance/#{courseInstanceID}/my-course-level-sessions" - }, options) - @fetch(options) - fetchForCourseInstance: (courseInstanceID, options) -> options = _.extend({ url: "/db/course_instance/#{courseInstanceID}/my-course-level-sessions" diff --git a/app/views/play/level/modal/CourseVictoryModal.coffee b/app/views/play/level/modal/CourseVictoryModal.coffee index 60c68d716..64b7b316f 100644 --- a/app/views/play/level/modal/CourseVictoryModal.coffee +++ b/app/views/play/level/modal/CourseVictoryModal.coffee @@ -131,6 +131,8 @@ module.exports = class CourseVictoryModal extends ModalView for newItem in @newItems.models @views.push(new NewItemView({item: newItem})) + @levelSessions?.remove(@session) + @levelSessions?.add(@session) progressView = new ProgressView({ level: @level nextLevel: @nextLevel diff --git a/server/handlers/course_instance_handler.coffee b/server/handlers/course_instance_handler.coffee index bf26df540..1ee87c11b 100644 --- a/server/handlers/course_instance_handler.coffee +++ b/server/handlers/course_instance_handler.coffee @@ -142,20 +142,20 @@ CourseInstanceHandler = class CourseInstanceHandler extends Handler CourseInstance.findById courseInstanceID, (err, courseInstance) => return @sendDatabaseError(res, err) if err return @sendNotFoundError(res) unless courseInstance - Course.findById courseInstance.get('courseID'), (err, course) => + Classroom.findById courseInstance.get('classroomID'), (err, classroom) => return @sendDatabaseError(res, err) if err - return @sendNotFoundError(res) unless course - Campaign.findById course.get('campaignID'), (err, campaign) => - return @sendDatabaseError(res, err) if err - return @sendNotFoundError(res) unless campaign - levelIDs = (levelID for levelID, level of campaign.get('levels') when not _.contains(level.type, 'ladder')) - query = {$and: [{creator: req.user.id}, {'level.original': {$in: levelIDs}}]} - cursor = LevelSession.find(query) - cursor = cursor.select(req.query.project) if req.query.project - cursor.exec (err, documents) => - return @sendDatabaseError(res, err) if err? - cleandocs = (LevelSessionHandler.formatEntity(req, doc) for doc in documents) - @sendSuccess(res, cleandocs) + return @sendNotFoundError(res) unless classroom + levelIDs = [] + for course in classroom.get('courses') when course._id.equals(courseInstance.get('courseID')) + for level in course.levels when not _.contains(level.type, 'ladder') + levelIDs.push(level.original + "") + query = {$and: [{creator: req.user.id}, {'level.original': {$in: levelIDs}}]} + cursor = LevelSession.find(query) + cursor = cursor.select(req.query.project) if req.query.project + cursor.exec (err, documents) => + return @sendDatabaseError(res, err) if err? + cleandocs = (LevelSessionHandler.formatEntity(req, doc) for doc in documents) + @sendSuccess(res, cleandocs) getMembersAPI: (req, res, courseInstanceID) -> return @sendUnauthorizedError(res) if not req.user?