Revert "feat: remove field-data binding from the runtime [FC-0026]" (#32740)
* Revert "feat: remove `field-data` service from runtime initialization" This reverts commit6c435bb68c. * Revert "feat: remove field data binding from the runtime" This reverts commit5f46ea52cd.
This commit is contained in:
@@ -433,6 +433,9 @@ def prepare_runtime_for_user(
|
||||
Arguments:
|
||||
see arguments for get_block()
|
||||
request_token (str): A token unique to the request use by xblock initialization
|
||||
|
||||
Returns:
|
||||
KvsFieldData: student_data bound to, primarily, the user and block
|
||||
"""
|
||||
|
||||
def inner_get_block(block):
|
||||
@@ -511,10 +514,14 @@ def prepare_runtime_for_user(
|
||||
# We already know the user has staff access when masquerading is active.
|
||||
block_wrappers.append(partial(add_staff_markup, user, disable_staff_debug_info))
|
||||
|
||||
field_data = DateLookupFieldData(block._field_data, course_id, user) # pylint: disable=protected-access
|
||||
field_data = LmsFieldData(field_data, student_data)
|
||||
|
||||
store = modulestore()
|
||||
|
||||
services = {
|
||||
'fs': FSService(),
|
||||
'field-data': field_data,
|
||||
'mako': mako_service,
|
||||
'user': DjangoXBlockUserService(
|
||||
user,
|
||||
@@ -584,6 +591,8 @@ def prepare_runtime_for_user(
|
||||
|
||||
block.runtime.set('position', position)
|
||||
|
||||
return field_data
|
||||
|
||||
|
||||
# TODO: Find all the places that this method is called and figure out how to
|
||||
# get a loaded course passed into it
|
||||
@@ -600,7 +609,7 @@ def get_block_for_descriptor_internal(user, block, student_data, course_id, trac
|
||||
request_token (str): A unique token for this request, used to isolate xblock rendering
|
||||
"""
|
||||
|
||||
prepare_runtime_for_user(
|
||||
student_data = prepare_runtime_for_user(
|
||||
user=user,
|
||||
student_data=student_data, # These have implicit user bindings, the rest of args are considered not to
|
||||
block=block,
|
||||
@@ -626,6 +635,8 @@ def get_block_for_descriptor_internal(user, block, student_data, course_id, trac
|
||||
],
|
||||
)
|
||||
|
||||
block.scope_ids = block.scope_ids._replace(user_id=user.id)
|
||||
|
||||
# Do not check access when it's a noauth request.
|
||||
# Not that the access check needs to happen after the block is bound
|
||||
# for the student, since there may be field override data for the student
|
||||
|
||||
@@ -105,6 +105,7 @@ TEST_DATA_DIR = settings.COMMON_TEST_DATA_ROOT
|
||||
|
||||
|
||||
@XBlock.needs('fs')
|
||||
@XBlock.needs('field-data')
|
||||
@XBlock.needs('mako')
|
||||
@XBlock.needs('user')
|
||||
@XBlock.needs('verification')
|
||||
@@ -2282,7 +2283,7 @@ class LMSXBlockServiceMixin(SharedModuleStoreTestCase):
|
||||
"""
|
||||
Instantiate the runtem.
|
||||
"""
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2653,7 +2654,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
self.track_function = Mock()
|
||||
self.request_token = Mock()
|
||||
self.contentstore = contentstore()
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2681,7 +2682,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
if is_staff:
|
||||
self.user = StaffFactory(course_key=self.course.id)
|
||||
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2703,7 +2704,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
if is_global_staff:
|
||||
self.user = GlobalStaffFactory.create()
|
||||
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2723,7 +2724,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
if is_beta_tester:
|
||||
self.user = BetaTesterFactory(course_key=self.course.id)
|
||||
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2744,7 +2745,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
if is_instructor:
|
||||
self.user = InstructorFactory(course_key=self.course.id)
|
||||
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2773,7 +2774,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
anonymous_student_id value.
|
||||
"""
|
||||
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.problem_block,
|
||||
@@ -2787,7 +2788,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
ATTR_KEY_DEPRECATED_ANONYMOUS_USER_ID
|
||||
) == anonymous_id_for_user(self.user, None)
|
||||
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2807,7 +2808,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
) == anonymous_id_for_user(self.user, None)
|
||||
|
||||
def test_user_service_with_anonymous_user(self):
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
AnonymousUser(),
|
||||
self.student_data,
|
||||
self.block,
|
||||
@@ -2836,7 +2837,7 @@ class LmsModuleSystemShimTest(SharedModuleStoreTestCase):
|
||||
|
||||
Newer code should use the user service, which gets tested in test_user_service.py
|
||||
"""
|
||||
render.prepare_runtime_for_user(
|
||||
_ = render.prepare_runtime_for_user(
|
||||
self.user,
|
||||
self.student_data,
|
||||
self.block,
|
||||
|
||||
@@ -354,7 +354,7 @@ class IndexQueryTestCase(ModuleStoreTestCase):
|
||||
self.client.login(username=self.user.username, password=self.user_password)
|
||||
CourseEnrollment.enroll(self.user, course.id)
|
||||
|
||||
with self.assertNumQueries(177, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST):
|
||||
with self.assertNumQueries(203, table_ignorelist=QUERY_COUNT_TABLE_IGNORELIST):
|
||||
with check_mongo_calls(3):
|
||||
url = reverse(
|
||||
'courseware_section',
|
||||
|
||||
Reference in New Issue
Block a user