diff --git a/lms/djangoapps/courseware/module_render.py b/lms/djangoapps/courseware/module_render.py index d782f4eb25..cb510eee64 100644 --- a/lms/djangoapps/courseware/module_render.py +++ b/lms/djangoapps/courseware/module_render.py @@ -481,10 +481,13 @@ def get_module_system_for_user( Returns None if no special processing is required. """ handlers = { - 'completion': handle_completion_event, 'grade': handle_grade_event, - 'progress': handle_deprecated_progress_event, } + if completion_waffle.waffle().is_enabled(completion_waffle.ENABLE_COMPLETION_TRACKING): + handlers.update({ + 'completion': handle_completion_event, + 'progress': handle_deprecated_progress_event, + }) return handlers.get(event_type) def publish(block, event_type, event): diff --git a/lms/djangoapps/courseware/tests/test_module_render.py b/lms/djangoapps/courseware/tests/test_module_render.py index 6a429a8bf6..bb73e95f0c 100644 --- a/lms/djangoapps/courseware/tests/test_module_render.py +++ b/lms/djangoapps/courseware/tests/test_module_render.py @@ -624,7 +624,7 @@ class TestHandleXBlockCallback(SharedModuleStoreTestCase, LoginEnrollmentTestCas content_type='application/json', ) request.user = self.mock_user - with self.assertRaises(Http404): + with patch('lms.djangoapps.completion.models.BlockCompletionManager.submit_completion') as mock_complete: render.handle_xblock_callback( request, unicode(course.id), @@ -632,6 +632,8 @@ class TestHandleXBlockCallback(SharedModuleStoreTestCase, LoginEnrollmentTestCas signal, '', ) + mock_complete.assert_not_called() + self.assertFalse(BlockCompletion.objects.filter(block_key=block.scope_ids.usage_id).exists()) @ddt.data( ('complete', {'completion': 0.625}, 0.625),