prevent overly nesting _field_data (TNL-2050)

This commit is contained in:
Adam Palay
2015-05-01 17:09:18 -04:00
parent 0866f056c8
commit afec81b662
10 changed files with 137 additions and 24 deletions

View File

@@ -214,13 +214,18 @@ def _load_preview_module(request, descriptor):
"""
student_data = KvsFieldData(SessionKeyValueStore(request))
if _has_author_view(descriptor):
field_data = CmsFieldData(descriptor._field_data, student_data) # pylint: disable=protected-access
wrapper = partial(CmsFieldData, student_data=student_data)
else:
field_data = LmsFieldData(descriptor._field_data, student_data) # pylint: disable=protected-access
wrapper = partial(LmsFieldData, student_data=student_data)
# wrap the _field_data upfront to pass to _preview_module_system
wrapped_field_data = wrapper(descriptor._field_data) # pylint: disable=protected-access
preview_runtime = _preview_module_system(request, descriptor, wrapped_field_data)
descriptor.bind_for_student(
_preview_module_system(request, descriptor, field_data),
field_data,
request.user.id
preview_runtime,
request.user.id,
[wrapper]
)
return descriptor