A better check for the existence of matlabinput element.
login, registration, and dashboard page changes for third-party auth
Facebook auth support.
Updating the Login button to have the same hover style as Drupal
be sure to just use the Open edX footer.html when we're running a white label on edx.org
Remove unneccesary checks for method existence
Clarify thread-safety of bulk_write context manager
Add bulk operations to split modulestore
Extensive testing of bulk operations
Add tests to show that reading a structure before versioning it breaks versioning
Make it so that versioning a structure that was read from the database works correctly
Improve check_number_of_calls family of methods
Improve debuggability when call-count numbers don't match up
Make find_matching_* work during split bulk operations
Remove qualifiers from get_courses
Add memcache as a requirement for running paver, because it's imported in pavelib/utils/envs.py
Make path_to_location use bulk_write_operation for performance.
Work around for split not having a coherent way to work with/track updated versions of structures
Push bulk_write_operations up into ModuleStoreRead, and rename to remove reference to writes
Monkey patch 'django.utils.translation'

Modify Django's translation library, such that the gettext family of
functions return an empty string when attempting to translate a
falsey value. This overrides the default behavior [0]:
> It is convention with GNU gettext to include meta-data as the
> translation for the empty string.

This patch provides a holistic solution to replace the current piecemeal
approach [1][2].

Affected Methods:
    - gettext
    - ugettext

[0] https://docs.python.org/2.7/library/gettext.html#the-gnutranslations-class
[1] bad803e451ce63b4693ecf52b66cedfce5b43160
[2] https://github.com/edx/edx-platform/pull/4653