* mattdrayer: Latest proto code
* mattdrayer: Add translation.py
* asadiqbal08: Xblock translation ugettext update, remove translation.py
* mattdrayer: Additional I18N work -- starting to see some translations!
* asadiqbal08: Trying to make xBlock message catalog files path dynamic
* mattdrayer: Remove unnecessary modifications
* mattdrayer: Cleaned up implementation
* mattdrayer: Moved import statement
* asadiqbal08: update as suggested
* asadiqbal08: xblock its own domain
* asadiqbal08: translation: secure none object
* asadiqbal08: pylint
* asadiqbal08: get locale from xblock
* asadiqbal08: update
* mattdrayer: Determine XBlock locale path within runtime service
* mattdrayer: Determine module location via the runtime
* mattdrayer: Remove ModuleI18nService reference
* asadiqbal08: override the service in studio
* asadiqbal08: remove import
* asadiqbal08: update the Modulei18nService
* asadiqbal08: update the Modulei18nService
* mattdrayer: Remove redundant __class__ reference
* asadiqbal08: update the docstring
* asadiqbal08: tests
* mattdrayer: Remove specific ugettext override from ModuleI18nService
* mattdrayer: Move service operation to base class
* mattdrayer: Address quality violations
* asadiqbal08: Investigating the test failure issue on jenkins and solved
* asadiqbal08: First utilizing the parent class method
* mattdrayer: Use recommended callable approach
* asadiqbal08: remove unused code
* asadiqbal08: Updated the test to use cms preview module system runtime in order to get i18n service.
* asadiqbal08: Pylint quality
* asadiqbal08: update the service call to check xblock declarations
* asadiqbal08: update doc string
* asadiqbal08: i18n callable test in studio
* asadiqbal08: test lms runtime for modulei18n service
* asadiqbal08: add doc strings
* asadiqbal08: Rename locale and domain to Flask-Babel convention
We had a mechanism to, at runtime, generate a RequireJS config that
would override the base paths and, instead, use the hashed versions of
assets for things that RequireJs was loading on demand.
We've now moved that out of the coureware.html base template and into
main.html so that more pages actually benefit from it.
As well, we've added some of the heavy hitters for unhashed assets,
namely moment.min.js, to these overrides which should allow better
caching for end users. We'll be able to add more things to the override
list in the future as they crop up.
clear_student_state(), a method defined by ORA, requires information
about the user making the request. Since this xblock is not bound,
we must provide that information explicitly.
It looks like in the past there used to be several tabs on the
course about page, but the other tabs have been commented
out years ago.
Having a single tab is pointless and confusing, so remove it.
When Drupal attempts to enroll a user in a closed course, a 406 will
be returned. This causes the marketing site to redirect to the track
selection page for that course, which will then redirect to the
dashboard with a nice message.
ECOM-2317