If an error occurs while rendering an xmodule, the LMS chokes with the
following error if accessed by a non admin user.
In the admin user case the existing line that registers ErrorDescriptor
ensures that everything works. But for the non admin case we need this
additional directive.
Traceback (most recent call last):
File "/openedx/edx-platform/lms/djangoapps/courseware/views/index.py", line 153, in get
return self.render(request)
File "/openedx/edx-platform/lms/djangoapps/courseware/views/index.py", line 217, in render
return render_to_response('courseware/courseware.html', self._create_courseware_context(request))
File "/openedx/edx-platform/lms/djangoapps/courseware/views/index.py", line 468, in _create_courseware_context
courseware_context['fragment'] = self.section.render(self.view, section_context)
File "/usr/local/lib/python2.7/site-packages/xblock/core.py", line 202, in render
return self.runtime.render(self, view, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1914, in render
return self.__getattr__('render')(block, view_name, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1335, in render
return super(MetricsMixin, self).render(block, view_name, context=context)
File "/usr/local/lib/python2.7/site-packages/xblock/runtime.py", line 831, in render
frag = view_fn(context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 262, in student_view
return self._student_or_public_view(context, prereq_met, prereq_meta_info, banner_text)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 343, in _student_or_public_view
items = self._render_student_view_for_items(context, display_items, fragment, view) if prereq_met else []
File "/openedx/edx-platform/common/lib/xmodule/xmodule/seq_module.py", line 485, in _render_student_view_for_items
rendered_item = item.render(view, context)
File "/usr/local/lib/python2.7/site-packages/xblock/core.py", line 202, in render
return self.runtime.render(self, view, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1914, in render
return self.__getattr__('render')(block, view_name, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1335, in render
return super(MetricsMixin, self).render(block, view_name, context=context)
File "/usr/local/lib/python2.7/site-packages/xblock/runtime.py", line 831, in render
frag = view_fn(context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/vertical_block.py", line 118, in student_view
return self._student_or_public_view(context, STUDENT_VIEW)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/vertical_block.py", line 85, in _student_or_public_view
rendered_child = child.render(view, child_block_context)
File "/usr/local/lib/python2.7/site-packages/xblock/core.py", line 202, in render
return self.runtime.render(self, view, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1914, in render
return self.__getattr__('render')(block, view_name, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1335, in render
return super(MetricsMixin, self).render(block, view_name, context=context)
File "/usr/local/lib/python2.7/site-packages/xblock/runtime.py", line 831, in render
frag = view_fn(context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/library_content_module.py", line 314, in student_view
rendered_child = displayable.render(STUDENT_VIEW, child_context)
File "/usr/local/lib/python2.7/site-packages/xblock/core.py", line 202, in render
return self.runtime.render(self, view, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1914, in render
return self.__getattr__('render')(block, view_name, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1335, in render
return super(MetricsMixin, self).render(block, view_name, context=context)
File "/usr/local/lib/python2.7/site-packages/xblock/runtime.py", line 835, in render
updated_frag = self.wrap_xblock(block, view_name, frag, context)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/x_module.py", line 1287, in wrap_xblock
frag = wrapper(block, view, frag, context)
File "/openedx/edx-platform/openedx/core/lib/xblock_utils/__init__.py", line 155, in wrap_xblock
add_webpack_to_fragment(frag, class_name)
File "/openedx/edx-platform/common/lib/xmodule/xmodule/util/xmodule_django.py", line 28, in add_webpack_to_fragment
for chunk in webpack_loader.utils.get_files(bundle_name, extension, config):
File "/usr/local/lib/python2.7/site-packages/webpack_loader/utils.py", line 31, in get_files
return list(_get_bundle(bundle_name, extension, config))
File "/usr/local/lib/python2.7/site-packages/webpack_loader/utils.py", line 23, in _get_bundle
bundle = get_loader(config).get_bundle(bundle_name)
File "/usr/local/lib/python2.7/site-packages/webpack_loader/loader.py", line 83, in get_bundle
raise WebpackBundleLookupError('Cannot resolve bundle {0}.'.format(bundle_name))
WebpackBundleLookupError: Cannot resolve bundle NonStaffErrorModule.
* Added new authentication class(meets drf standards)
The new class replaces the deprecated oauth2authetnication class from rest_framework_auth library(repo django-rest-framework-oauth).
Majority of the code is combination of copy-pasta from old oauth2authentication class and Oauth2AuthenticationAllowInactiveUser class
* Added ability to switch to new authentication class in bookmarks app
* Changed error type reported by Outh class. It now outputs a json rather than a string.
Adds a course_ids api that can filter by user role, since the courses
api could not perform well enough for this, and returned much more
data than we need.
Additionally, adds a LazyPageNumberPagination to provide more accurate
counts in the pagination response when using LazySequence with the
queryset.
BOM-897
This PR adds a management command that will update the email address
of the given accounts provided through a CSV file.
This is necessary internally at edX to update a number of internal accounts
which are using sibling email addresses and would be locked out after we
enforce SSO.
Currently, we are working on removing the rest_framework_auth library from edx-platform. For this push, we need to remove the oauth2Authentication class. This PR creates a new class oauth2AuthenticationDeprecated that adds additional new relic metrics. The metrics would allow us to see how often this class is used and its success rate. The hope is that this information will help us with transitioning to a different authentication class.
BOM-1228
The api is already not very performant and trying to limit it to only
show courses where you are staff causes the code to iterate over almost
all the courses and times out before it returns any results to the user.
The plan is to build a different api for the thing we need that will
just provide the course IDs for courses where you are staff and sholud
be much faster.
This patch adds compilejs
management command to be executed
on pull translations enabling
availability of js/jsx translations
for lms/cms code.
PROD-960