def _delete_entrance_exam(request, course_key): """ Internal workflow operation to remove an entrance exam """ store = modulestore() course = store.get_course(course_key) if course is None: return HttpResponse(status=400) course_children = store.get_items(course_key, qualifiers={'category': 'chapter'}) for course_child in course_children: if course_child.is_entrance_exam: delete_item(request, course_child.scope_ids.usage_id) milestones_api.remove_content_references( unicode(course_child.scope_ids.usage_id)) # Reset the entrance exam flags on the course # Reload the course so we have the latest state course = store.get_course(course_key) if getattr(course, 'entrance_exam_id'): metadata = { 'entrance_exam_enabled': False, 'entrance_exam_minimum_score_pct': None, 'entrance_exam_id': None, } CourseMetadata.update_from_dict(metadata, course, request.user) return HttpResponse(status=204)
def test_remove_content_references(self): """ Unit Test: test_remove_content_references """ # Add a course dependency on the test milestone api.add_course_milestone( self.test_course_key, self.relationship_types['REQUIRES'], self.test_milestone ) self.assertEqual(len(api.get_course_milestones(self.test_course_key)), 1) # Add a content fulfillment for the test milestone api.add_course_content_milestone( self.test_course_key, self.test_content_key, self.relationship_types['FULFILLS'], self.test_milestone ) milestones = api.get_course_content_milestones(self.test_course_key, self.test_content_key) self.assertEqual(len(milestones), 1) # Remove the content dependency with self.assertNumQueries(2): api.remove_content_references(self.test_content_key) milestones = api.get_course_content_milestones(self.test_course_key, self.test_content_key) self.assertEqual(len(milestones), 0)
def _delete_entrance_exam(request, course_key): """ Internal workflow operation to remove an entrance exam """ store = modulestore() course = store.get_course(course_key) if course is None: return HttpResponse(status=400) course_children = store.get_items( course_key, qualifiers={'category': 'chapter'} ) for course_child in course_children: if course_child.is_entrance_exam: delete_item(request, course_child.scope_ids.usage_id) milestones_api.remove_content_references(unicode(course_child.scope_ids.usage_id)) # Reset the entrance exam flags on the course # Reload the course so we have the latest state course = store.get_course(course_key) if getattr(course, 'entrance_exam_id'): metadata = { 'entrance_exam_enabled': False, 'entrance_exam_minimum_score_pct': None, 'entrance_exam_id': None, } CourseMetadata.update_from_dict(metadata, course, request.user) return HttpResponse(status=204)
def remove_content_references(content_id): """ Client API operation adapter/wrapper """ if not ENABLE_MILESTONES_APP.is_enabled(): return None return milestones_api.remove_content_references(content_id)
def remove_content_references(content_id): """ Client API operation adapter/wrapper """ if not settings.FEATURES.get('MILESTONES_APP'): return None return milestones_api.remove_content_references(content_id)
def test_remove_content_references(self): """ Unit Test: test_remove_content_references """ # Add a course dependency on the test milestone api.add_course_milestone(self.test_course_key, self.relationship_types['REQUIRES'], self.test_milestone) self.assertEqual(len(api.get_course_milestones(self.test_course_key)), 1) # Add a content fulfillment for the test milestone api.add_course_content_milestone(self.test_course_key, self.test_content_key, self.relationship_types['FULFILLS'], self.test_milestone) milestones = api.get_course_content_milestones(self.test_course_key, self.test_content_key) self.assertEqual(len(milestones), 1) # Remove the content dependency with self.assertNumQueries(2): api.remove_content_references(self.test_content_key) milestones = api.get_course_content_milestones(self.test_course_key, self.test_content_key) self.assertEqual(len(milestones), 0)