Change completion API to work with any learning context

This commit is contained in:
Braden MacDonald
2019-10-01 16:40:21 -04:00
parent 7dbee1c3dd
commit 5fc73468b3
24 changed files with 214 additions and 89 deletions

View File

@@ -477,7 +477,8 @@ def get_subsection_completion_percentage(subsection_usage_key, user):
if not completable_blocks:
return 100
subsection_completion_total = 0
course_block_completions = BlockCompletion.get_course_completions(user, subsection_usage_key.course_key)
course_key = subsection_usage_key.course_key
course_block_completions = BlockCompletion.get_learning_context_completions(user, course_key)
for block in completable_blocks:
if course_block_completions.get(block):
subsection_completion_total += course_block_completions.get(block)

View File

@@ -266,7 +266,7 @@ class TestGatingApi(ModuleStoreTestCase, MilestonesTestCaseMixin):
category='html',
display_name='some html block'
)
with patch.object(BlockCompletion, 'get_course_completions') as course_block_completions_mock:
with patch.object(BlockCompletion, 'get_learning_context_completions') as course_block_completions_mock:
course_block_completions_mock.return_value = {
problem_block.location: user_problem_completion,
html_block.location: user_html_completion,
@@ -307,7 +307,7 @@ class TestGatingApi(ModuleStoreTestCase, MilestonesTestCaseMixin):
display_name=u'{} block'.format(component_type)
)
with patch.object(BlockCompletion, 'get_course_completions') as course_block_completions_mock:
with patch.object(BlockCompletion, 'get_learning_context_completions') as course_block_completions_mock:
course_block_completions_mock.return_value = {
component.location: completed,
}