fixed comments
This commit is contained in:
@@ -20,7 +20,7 @@ def get_blocks(
|
||||
block_counts=None,
|
||||
student_view_data=None,
|
||||
return_type='dict',
|
||||
block_type_filter=None,
|
||||
block_types_filter=None,
|
||||
):
|
||||
"""
|
||||
Return a serialized representation of the course blocks.
|
||||
@@ -45,7 +45,7 @@ def get_blocks(
|
||||
which blocks to return their student_view_data.
|
||||
return_type (string): Possible values are 'dict' or 'list'. Indicates
|
||||
the format for returning the blocks.
|
||||
block_type_filter (list): Optional list of block type names used to filter
|
||||
block_types_filter (list): Optional list of block type names used to filter
|
||||
the final result of returned blocks.
|
||||
"""
|
||||
# create ordered list of transformers, adding BlocksAPITransformer at end.
|
||||
@@ -65,11 +65,11 @@ def get_blocks(
|
||||
blocks = get_course_blocks(user, usage_key, transformers)
|
||||
|
||||
# filter blocks by types
|
||||
if block_type_filter:
|
||||
if block_types_filter:
|
||||
block_keys_to_remove = []
|
||||
for block_key in blocks:
|
||||
block_type = blocks.get_xblock_field(block_key, 'category')
|
||||
if block_type not in block_type_filter:
|
||||
if block_type not in block_types_filter:
|
||||
block_keys_to_remove.append(block_key)
|
||||
for block_key in block_keys_to_remove:
|
||||
blocks.remove_block(block_key, keep_descendants=True)
|
||||
|
||||
@@ -31,7 +31,7 @@ class BlockListGetForm(Form):
|
||||
student_view_data = MultiValueField(required=False)
|
||||
usage_key = CharField(required=True)
|
||||
username = CharField(required=False)
|
||||
block_type_filter = MultiValueField(required=False)
|
||||
block_types_filter = MultiValueField(required=False)
|
||||
|
||||
def clean_depth(self):
|
||||
"""
|
||||
@@ -89,7 +89,7 @@ class BlockListGetForm(Form):
|
||||
'student_view_data',
|
||||
'block_counts',
|
||||
'nav_depth',
|
||||
'block_type_filter',
|
||||
'block_types_filter',
|
||||
]
|
||||
for additional_field in additional_requested_fields:
|
||||
field_value = cleaned_data.get(additional_field)
|
||||
|
||||
@@ -12,8 +12,6 @@ from xmodule.modulestore.tests.factories import SampleCourseFactory
|
||||
|
||||
from ..api import get_blocks
|
||||
|
||||
import re
|
||||
|
||||
|
||||
class TestGetBlocks(EnableTransformerRegistryMixin, SharedModuleStoreTestCase):
|
||||
"""
|
||||
@@ -84,16 +82,17 @@ class TestGetBlocks(EnableTransformerRegistryMixin, SharedModuleStoreTestCase):
|
||||
sequential_block = self.store.get_item(self.course.id.make_usage_key('sequential', 'sequential_y1'))
|
||||
|
||||
# not filtered blocks
|
||||
blocks = get_blocks(self.request, sequential_block.location, self.user)
|
||||
blocks = get_blocks(self.request, sequential_block.location, self.user, requested_fields=['type'])
|
||||
self.assertEquals(len(blocks['blocks']), 5)
|
||||
found_not_problem = False
|
||||
for key in blocks['blocks']:
|
||||
if not re.search(r'/problem/', key):
|
||||
if blocks['blocks'][key]['type'] != 'problem':
|
||||
found_not_problem = True
|
||||
self.assertTrue(found_not_problem)
|
||||
|
||||
# filtered blocks
|
||||
blocks = get_blocks(self.request, sequential_block.location, self.user, block_type_filter=['problem'])
|
||||
blocks = get_blocks(self.request, sequential_block.location, self.user,
|
||||
block_types_filter=['problem'], requested_fields=['type'])
|
||||
self.assertEquals(len(blocks['blocks']), 3)
|
||||
for key in blocks['blocks']:
|
||||
self.assertTrue(re.search(r'/problem/', key))
|
||||
self.assertEqual(blocks['blocks'][key]['type'], 'problem')
|
||||
|
||||
@@ -60,7 +60,7 @@ class TestBlockListGetForm(EnableTransformerRegistryMixin, FormTestMixin, Shared
|
||||
'usage_key': usage_key,
|
||||
'username': self.student.username,
|
||||
'user': self.student,
|
||||
'block_type_filter': set(),
|
||||
'block_types_filter': set(),
|
||||
}
|
||||
|
||||
def assert_raises_permission_denied(self):
|
||||
|
||||
@@ -33,7 +33,7 @@ class BlocksView(DeveloperErrorViewMixin, ListAPIView):
|
||||
&requested_fields=graded,format,student_view_multi_device,lti_url
|
||||
&block_counts=video
|
||||
&student_view_data=video
|
||||
&block_type_filter=problem,html
|
||||
&block_types_filter=problem,html
|
||||
|
||||
**Parameters**:
|
||||
|
||||
@@ -86,11 +86,11 @@ class BlocksView(DeveloperErrorViewMixin, ListAPIView):
|
||||
|
||||
Example: return_type=dict
|
||||
|
||||
* block_type_filter: (list) Requested types of blocks used to filter the final result
|
||||
of returned blocks. Possible values include sequential,vertical, html, problem,
|
||||
* block_types_filter: (list) Requested types of blocks used to filter the final result
|
||||
of returned blocks. Possible values include sequential, vertical, html, problem,
|
||||
video, and discussion.
|
||||
|
||||
Example: block_type_filter=vertical,html
|
||||
Example: block_types_filter=vertical,html
|
||||
|
||||
**Response Values**
|
||||
|
||||
@@ -186,7 +186,7 @@ class BlocksView(DeveloperErrorViewMixin, ListAPIView):
|
||||
params.cleaned_data.get('block_counts', []),
|
||||
params.cleaned_data.get('student_view_data', []),
|
||||
params.cleaned_data['return_type'],
|
||||
params.cleaned_data.get('block_type_filter', None),
|
||||
params.cleaned_data.get('block_types_filter', None),
|
||||
)
|
||||
)
|
||||
except ItemNotFoundError as exception:
|
||||
@@ -210,7 +210,7 @@ class BlocksInCourseView(BlocksView):
|
||||
&requested_fields=graded,format,student_view_multi_device,lti_url
|
||||
&block_counts=video
|
||||
&student_view_data=video
|
||||
&block_type_filter=problem,html
|
||||
&block_types_filter=problem,html
|
||||
|
||||
**Parameters**:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user