Skip to content

[LTI Provider] WIP: Simple LTI authentication - #8176

Closed
mcgachey wants to merge 2 commits into
openedx:masterfrom
mcgachey:mcgachey-lti-auth
Closed

[LTI Provider] WIP: Simple LTI authentication#8176
mcgachey wants to merge 2 commits into
openedx:masterfrom
mcgachey:mcgachey-lti-auth

Conversation

@mcgachey

Copy link
Copy Markdown
Contributor

This is an initial implementation that allows LTI users to log in transparently to edX. The behavior is driven by pilot users at Harvard; this was the most requested feature.

The diff creates a new database model that maps users' LTI identifiers to newly-created edX accounts. If an LTI launch comes in with a user_id field that is not in the database, a new edX account is created with a random user name and password. This account is then stored in the database, so that it is permanently associated with the LTI user ID.

This patch takes a brute-force approach to session management. If a user is logged in with a different account when they perform an LTI launch, they will be logged out and then re-logged in using their LTI account.

The diff is a little messy since it builds on the code in PR https://github.com/edx/edx-platform/pull/8117. When that is merged I will rebase to clean things up. In the absence of any suggestions for improvement, I'll submit a full PR for this feature on June 1st.

@openedx-webhooks

Copy link
Copy Markdown

Thanks for the pull request, @mcgachey! I've created OSPR-609 to keep track of it in JIRA. JIRA is a place for product owners to prioritize feature reviews by the engineering development teams.

Feel free to add as much of the following information to the ticket:

  • supporting documentation
  • edx-code email threads
  • timeline information ('this must be merged by XX date', and why that is)
  • partner information ('this is a course on edx.org')
  • any other information that can help Product understand the context for the PR

All technical communication about the code itself will still be done via the Github pull request interface. As a reminder, our process documentation is here.

@openedx-webhooks openedx-webhooks added open-source-contribution PR author is not from Axim or 2U needs triage labels May 24, 2015
@sarina

sarina commented May 26, 2015

Copy link
Copy Markdown
Contributor

@mcgachey - what PR does this build on? #8177 doesn't appear to be associated with your changes.

@wmono

wmono commented May 26, 2015

Copy link
Copy Markdown
Contributor

It looks like there's a single namespace for lti_user_id. I can see how this is great in the case that there's a single pool of users across all the tool consumers, but in environments like edge, this will likely result in collisions and different users accidentally sharing accounts. Should the lti_user_id be scoped by LTI consumer key?

@mcgachey

Copy link
Copy Markdown
Contributor Author

@mcgachey

Copy link
Copy Markdown
Contributor Author

@wmono - that's an excellent point. I'll make the change.

@sarina

sarina commented May 27, 2015

Copy link
Copy Markdown
Contributor

@mcgachey all your tests are failing for reason, cannot import name lti_to_edx_user_id - can you run them locally and reproduce / try to fix?

@sarina

sarina commented May 27, 2015

Copy link
Copy Markdown
Contributor

This looks reasonable to me except for the test failures. I'm going to send this one to Dave as well.

@mcgachey

Copy link
Copy Markdown
Contributor Author

@sarina - thanks. I saw the failing tests, but I put this request up to get feedback on the approach rather than as code to be merged (the code's missing any new unit tests as well). I'm planning to close this pull request early next week, and then submit a new one incorporating any feedback.

Given that intention, is 'WIP' the right tag to attach to the change?

@sarina

sarina commented May 27, 2015

Copy link
Copy Markdown
Contributor

@mcgachey yeah, that's a good route to take!

@ormsbee is going to be the best person to provide you feedback. He's back today, and I'll make sure I talk with him about the two LTI PRs when he's in the Cambridge office tomorrow.

@ormsbee

ormsbee commented Jun 1, 2015

Copy link
Copy Markdown
Contributor

There are more low-level items I could go into, but the reason it's taking me so long to give feedback is that I'm trying to evaluate how we want it to work at a higher level. Auto create + forced logout is a bit of a kludge, and will skew our stats/analytics. It would be nice to create a virtual user for the purposes of XBlock state management, but without all the Django user baggage (since it only has to live for the context of that LTI interaction).

@cpennington

Copy link
Copy Markdown
Contributor

Do we ever have to preserve problem state from one LTI activation to another? Or are we expected to present a blank slate every time? If it's the former, then maybe extending our existing third-party-auth code would be best. If it's the latter, then we should definitely look at extending the XBlock FieldData code with non-durable storage capabilities.

@mcgachey

mcgachey commented Jun 3, 2015

Copy link
Copy Markdown
Contributor Author

@cpennington - We will want to preserve state over time. The longer term plan is to integrate with the third-party auth code.

@cpennington

Copy link
Copy Markdown
Contributor

@bradenmacdonald: Is LTI SSO something that will overlap with the SSO work that you are doing for Shib providers?

@cpennington

Copy link
Copy Markdown
Contributor

@mcgachey: Is the code going to be deployed/enabled before you move the auth to the third-party-auth solution?

@mcgachey

mcgachey commented Jun 3, 2015

Copy link
Copy Markdown
Contributor Author

@cpennington - Yes. There's a larger project underway, headed up by Beth and the UBC folks, to figure out exactly how LTI user management should work. This is a stopgap that meets one specific use case so that we can use the system at Harvard while that work's underway.

@bradenmacdonald

Copy link
Copy Markdown
Contributor

@cpennington From this PR it doesn't look like there's overlap, but if/when it's integrated into third_party_auth, then yes there would be. Hopefully my work will make this LTI SSO easier to achieve. It's something I need to look into more as I don't yet have much knowledge of LTI.

@mcgachey

mcgachey commented Jun 3, 2015

Copy link
Copy Markdown
Contributor Author

@cpennington - I should have mentioned, all of this functionality is behind a feature flag, so while it'll be deployed at Harvard it doesn't have to be deployed anywhere else yet.

mcgachey referenced this pull request in mcgachey/edx-platform Jun 3, 2015
This change cleans up the work in progress request at https://github.com/edx/edx-platform/pull/8176

This is an initial authentication implementation that allows LTI users to log in transparently to
edX. The behavior is driven by pilot users at Harvard; this was the most requested feature.

The patch creates a new database model that maps users' LTI identifiers to newly-created edX
accounts. If an LTI launch comes in with a user_id field that is not in the database, a new edX
account is created with a random user name and password. This account is then stored in the database,
so that it is permanently associated with the LTI user ID.

This patch takes a simplistic approach to session management. If a user is logged in with a
different account when they perform an LTI launch, they will be logged out and then re-logged
in using their LTI account.

In order to keep the patch simple, I have split out some refactoring that needs to be done into
a separate branch that I'll post once this has been merged. Since we no longer redirect to the
login page, we don't need to maintain two separate LTI endpoints (one for the LTI launch and
one for authenticated users), or deal with the session management that requires. There are
also multiple fetches of the LtiConsumer object (one in the view, one in the signature
validation) that the later patch will consolidate into one.
@mcgachey

mcgachey commented Jun 3, 2015

Copy link
Copy Markdown
Contributor Author

This WIP request has been replaced by https://github.com/edx/edx-platform/pull/8347

@mcgachey mcgachey closed this Jun 3, 2015
mcgachey added a commit to mcgachey/edx-platform that referenced this pull request Jun 12, 2015
This is an initial authentication implementation that allows LTI users to
log in transparently to edX. The behavior is driven by pilot users at
Harvard; this was the most requested feature.

The patch creates a new database model that maps users' LTI identifiers
to newly-created edX accounts. If an LTI launch comes in with a user_id
field that is not in the database, a new edX account is created with a
random user name and password. This account is then stored in the
database, so that it is permanently associated with the LTI user ID.

This patch takes a simplistic approach to session management. If a user
is logged in with a different account when they perform an LTI launch,
they will be logged out and then re-logged in using their LTI account.

In order to keep the patch simple, I have split out some refactoring
that needs to be done into a separate branch that I'll post once this
has been merged. Since we no longer redirect to the login page, we don't
need to maintain two separate LTI endpoints (one for the LTI launch and
one for authenticated users), or deal with the session management that
requires. There are also multiple fetches of the LtiConsumer object
(one in the view, one in the signature validation) that the later
patch will consolidate into one.

This branch fixes the previous conflicts with the test refactoring
carried out in PR 8240.
stvstnfrd added a commit to stvstnfrd/edx-platform that referenced this pull request Aug 26, 2015
Hotfix for Aug 20, 2015

* tag 'hotfix-2015-08-20':
  Fix Forum Update Issue #TNL-3101
  Allow user partition version >= current version.
  HTML-escape uses of course display name.
  Fixing minimum grade value error ECOM-2109
  Allow course staff and privileged users to create multiple teams.
  Revert "Merge pull request #8724 from Colin-Fredericks/ColinF-partial-credit"
  Only let global staff (is_staff=True) see the Proctoring tab in the Instructor Dashboard
  only include JS when feature flag is on and the course has proctoring enabled
  Validating team size on join, server-side
  Fix broken test due to two PRs merging
  Bok choy tests for dynamic updating after team changes.
  Implement model refreshing for Teams tab
  Clean i18n directories before validating
  Show correct error when creating a team.
  Update translations (autogenerated message)
  Integration of edx_proctoring into the LMS
  Remove invite link functionality from teams.
  fix various style regressions on eComm tab of Instructor dashboard
  Support filtering team membership
  remove list margin and padding on cards lists
  Also pass course_id when fetching memberships for user in team profile view.
  Fixed accessibility related issues on schedule tab inside CCX coach dashboard
  Add toggle_login_modal to list of base_application_js.
  Support leaving a team
  ziafazal/SOL-1044: Database-Driven Certificate Templates
  support joining a team
  Team details page.
  Fix various team accessibility issues.
  Improve Teams tab navigation
  Govern team creation for non-privileged users
  Team API include correct info when expanding users TNL-2975
  Added optional mark_as_read field to comments in Discussion API
  Make status use ConfigurationModel instead.
  add more lti logging around oauth (TNL-2980)
  Support team UI for regenerating certificates
  Update to latest version of nose.
  Make status use ConfigurationModel instead.
  Revert "Optimize OpenID Course Claims for non-global-staff users."
  Revert "Test library failed to export after import"
  Added API endpoints for CreditCourse
  Add more context to translation strings
  Fix CCX 0002 migration
  Revert "Revert "Merge pull request #8986 from jazkarta/remove-ccx-enrollment""
  Updating video bumper play button
  SOL-1118
  My Teams tab.
  Style simplification to sync up styles
  Make new masquerading code compatible to existing session data.
  Fixed course_id pattern regex. PLAT-776
  Test Cale's RC fix.
  Show vaguer error message if using default start date
  Use the correct attribute when accessing StudentModuleHistory creation dates
  Add more information when logging data about differing history and score entries
  Don't violate the empty-dict vs None semantics of student_module during delete_many
  Update the version of django-staticfiles
  OSPR-535 Partial Credit
  settings.STUDIO_SHORT_NAME doesn't exist in LMS
  settings.STUDIO_SHORT_NAME doesn't exist in LMS
  mattdrayer/SOL-981: Integrate edx-organizations application
  Separate out the Backbone image field
  Revert "Merge pull request #8986 from jazkarta/remove-ccx-enrollment"
  Revert "Merge pull request #9241 from mitocw/bdero/readd-ccx-membership-model"
  Remove Stanford branding from external_auth view
  Update i18n-tools [LOC-88]
  Add the CcxMembership model back
  Emit INFO-level messages when a mode does not have a SKU
  Update edx reverification block on plateform
  Handle case of video in a content library with no transcripts.
  Enable teams and deprecate the advanced setting
  Update translations (autogenerated message)
  Test that discussion admins can delete team posts.
  Fix IE10 issue with delete button. Delete button should not be clickable if in use by a unit.
  Include coffee dependency files in discussion_js.
  Allow discussion vendor files to be bundled.
  Reduce dependency on courseware_js.
  Strip aways slashes from the asset 'displayname' as they cause export to fail. TNL-2669
  MA-1061 Fix IntegrityError caused by race condition in CourseOverview.get_from_id
  pep8
  Initialize signal handler, so we can remove getattr
  Allow image files to be cached.
  on clicking Edit of certificate config show prompt
  Add Bok Choy tests for teams page URL routing.
  Add Full Country & Language Names to Teams [TNL-2891]
  No need to install prereqs twice on circleci.com
  Enforce discussions permissions in teams UI.
  Allow editing of own post in team discussion
  updated inline discussion styling to account for lack of expand / show message (which was being relied on for layout) and also removed issues of generic pagination styling impacting the older inline discussion pagination pattern with a class renaming
  Only verify course access for threads with course context.
  Show inline discussion component on Team view
  Ignore more directories to speed up extracting i18n strings.
  Fixing course settings page for change in minimum grade ECOM-1987
  updated the help text for cert_whitelist
  Should never just link the word 'here'
  Test library failed to export after import
  New bok-choy shard (#7).
  Get circleci configuration working for forks
  MA-977 Use "supports" decorator on XBlocks for multi-device support
  Clean up unused CI scripts
  create a new team
  certificate edit/delete is only allowed if user is edX PM or certificate is not active
  Add DataDog histogram events to DjangoXBlockUserStateClient class.
  Add the creator of a team to that team.
  Exposing course verification deadline via Commerce API
  Exposing course name via Commerce API
  Exposing course verification deadline via Commerce API
  Add circle configuration
  We should only add the DjDT urls if it is enabled.
  SOL-1035
  Fixed ORA1 deprecated warning message when a component does not have a `display_name` TNL-2855
  Fixed confirmation message display for StaffDebug actions
  Remove needless 'disable=no-member' pragmas
  Optimize OpenID Course Claims for non-global-staff users.
  Remove 'pylint: disable=no-value-for-parameter' that we no longer need.
  Exposing course name via Commerce API
  Update pylint and astroid, reduces pylint count by 400
  adds back in correct and incorrect styling for annotations problems
  Make team chat icon appear.
  Remove unneeded block from courses.html template
  Remove Mustache usage from discussions
  Add a test of submission history display
  Remove remove_input_state.py, as it was one-time fix code, and is not worth porting to the new interface
  Make DjangoXBlockUserStateClient pass semantic tests
  Remove extraneous documentation, contracts, and method definitions
  Add a subclass-implementation of the UserStateClient tests
  Use the standard enrollment table instead of a custom CCX table for CCX enrollments.
  Fix forums escaping bug
  Extend is_commentable_cohorted to support teams
  ECOM-1947: updated the middleware to exclude the password strings from event logging
  Removing @contract
  Correct email settings URL and rename variable.
  MA-1063 Add versioning and timestamping to CourseOverview
  CHANGELOG is dead.
  Allow microsites to use logistration page (ECOM-1976)
  MA-851: Add access response information into view_course_access
  Make context for threads more implicit.
  remove certificates menu if html certs not enabled
  Update translations (autogenerated message)
  Bump problem builder version to avoid 500 error from PLAT-772
  Ignore team membership for privileged users.
  Move is_commentable_cohorted to django_comment_client
  Fix setuptools infinite loop bug triggered by python-saml
  Upgrade MySQL-python to 1.2.5
  Upgrade setuptools to 18.0.1
  Deactivate HTTPS on dev and devstack
  ECOM-1947: updated the middleware to exclude the password strings from event logging
  Add team permission check on commentable_id.
  Allow enrollments in expired modes to be deactivated
  Revert "Remove unnecessary DB call in team pagination."
  Revert "TNL-394: Fixed the confirmation message"
  generate diff-coverage report in JS jenkins build
  Delete null_handler.py
  Update ICRV version
  Copy & Styling for Credit messages on Dashboard
  hide certificate configuration activate/deactivate and delete buttons
  Initial idea
  Make email addresses in SAML metadata fully configurable
  disable course discovery feature by default in devstack.
  Add New Relic tracing to TeamsListView.get.
  Add index on CourseTeam name.
  Add historical course enrollment table.
  Fixing indicator spacing
  Fix Django Debug Toolbar circular imports
  Pin the rc6266 fork release
  quality
  fix errors
  use a universal null handler
  Revert "a different take"
  Update testing.rst with info about bok choy accessibility tests
  Add discussion_topic_id to Team API docstrings
  switch to using tags
  Sending focus to modal in CMS
  a different take
  ECOM-1817: updated the course name and also styling for the provider
  add a null signal handler to BulkOperationMixin, remove conditionals
  Autopublish when vertical is deleted
  Resolved LogHandler bug in rf6266
  Add in-course reverification to advanced components.
  ECOM-1911: Fixes to credit requirements in Studio.
  Allow previewing cohorted content when masquerading
  commerce/api: Don’t allow setting expiration of prof modes.
  commerce/api: pass expiration_datetime when updating modes
  Corrected CourseMode Display Name
  Integrate timed and proctored exam authoring into Studio
  Simplify birth_year variable
  Resolved LogHandler bug in rf6266
  Thread sort key and direction for discussion api
  assertTrue should be assertEqual
  Minor improvements to learner profile tests
  Fix markdown editor reference link having colon issue
  TNL-1943 Support thread context for team discussions
  Fix team count in topic serializers
  Fixed Flaky test (TestLibraryImport.test_import_timestamp) PLAT-760
  Fix flaky test.
  Respond to code review feedback
  Pull discussion underscore templates out into individual files
  ECOM-1916: updated the dispaly
  Course discovery UI improvements
  Allow users to submit initial verification at in-course checkpoints.
  Fix View Live link on Textbooks page in Studio.
  Bump mongoengine version to 0.10.0
  Give teams view error messages focus.
  commerce/api: Don’t allow setting expiration of prof modes.
  commerce/api: pass expiration_datetime when updating modes
  mistaken update of edx_proctoring repo hash update, this was meant for a working branch
  Update github.txt
  White-listed course detail API calls
  Mark CourseTeamPageTest testcase class as flaky
  Enable faster ModuleStore tests with SharedModuleStoreTestCase.
  Skipping the failing tests; which are also failing in master Can see if we remove skipIf from video base class.
  Using youtube api (v3) instead of v2 to get the video duration .
  Corrected CourseMode Display Name
  ECOM-1807 Adding personal email in authors file.
  ECOM-1807 Adding provider thumbnail url.
  Inserting RTL support
  Update translations (autogenerated message)
  mark test_import_timestamp as flaky
  generate verify_uuid for web based certificates also
  update caching for eligibility email content and edx-logo ECOM-1525
  Optimize test course creation with bulk_operations.
  allows platform version formatting as a part of static url served by djpyfs
  update authors
  Convert to named arguments for localized strings.
  Delete mention of direction from checkboxgroup.
  Display rounded problem results.
  Fix library index test
  Update edx-oauth2-provider to 0.5.6
  Set default value of showanswer to Never since it doesn't work.
  Redirect to dashboard from non-live courses.
  Sort the grade cutoffs.
  Fix conflicting 0004_ migrations on course_overviews
  Dependency cleanup.
  Fix TrueFalse responses with single answers.
  Fix the teams factory spec so it runs.
  Grading doesn't work for XML courses TNL-2879
  Fixed MathJax rendering in problem hint TNL-2857
  Skipping the failing tests; which are also failing in master Can see if we remove skipIf from video base class.
  Using youtube api (v3) instead of v2 to get the video duration .
  TNL-394: Fixed the confirmation message
  Add in-course reverification to advanced components.
  Make active menu highlight in blue.
  Set the second arg to __init__ for the HeartbeatFailure exception to 'mongo', create a split_mongo connection test
  ECOM-1911: Fixes to credit requirements in Studio.
  Post complexity metric to a file for downstream collection.
  Reset advertised_start field course rerun
  Integrate timed and proctored exam authoring into Studio
  Added unanswered/unread query params for thread in discussion api
  Allow course staff to bypass embargo rules.
  hiding generated certificate button in case of self paced courses
  Remove unnecessary DB call in team pagination.
  Update translations (autogenerated message)
  A variety of small printing fixes
  Fix broken Jasmine tests for course discovery
  Add teams-for-topic list view to Teams page.
  added incontext option to system message styles for teams
  Update edx-search, fix lms filter generator and courseware index tests
  start-date-reset-to-DEFAULT_START_DATE
  Allow previewing cohorted content when masquerading
  credit eligibility and payment receipt email
  MA-834: Add new fields to course enrollments endpoint in mobile API
  Fix URL trailing slash bug in teams endpoint
  Add Backbone model and collection for teams.
  Fixes DOC-841 per multiple requests
  Update translations (autogenerated message)
  Separate verification deadline from upgrade deadline
  Update edx-oauth2-provider to 0.5.5
  Update edx-oauth2-provider to 0.5.4
  Optimize edxnotes files.
  Fixup for tests.
  Better fix for open ended grading.
  Addressed notes.
  Add ability to activate a child block via jump_to_id.
  PLAT-734 Fix slow transaction due to multiple calls to unpickling
  Clean up some e-commerce strings on the Instructor Dashboard
  Credit progress page formatting bugfixes.
  Instead of calculating the course's usage key, just follow the parent chain.
  Return just the CourseDescriptor in discussions get_course()
  Cache CcxFieldOverrides on a per-request basis
  Cache CustomCourseForEdX object lookup per-request
  Make CcxFactory fill in a coach if one isn't supplied
  Make request_cache easier to use
  Optimize search usages.
  PLA-749 Fix student dashboard for users enrolled in CCX courses
  Convert cohort JS to use RequireJS.
  Optimize finish_auth_factory.
  Optimize account settings and learner profile.
  Implement RequireJS Optimizer in the LMS
  Remove modulestore dependency from Enrollment API
  Additional configuration options for LTI provider feature.
  Fix test failure due to missing settings import
  Refactor auth.has_access to auth.user_has_role
  MA-849: Change has_access return type
  Fixing footer printing (LMS)
  Update edx-oauth2-provider to 0.5.4
  Fixing spacing within inline
  Fixing spans inside inline divs
  Skip test that had a hardcoded date expectation  MA-1038
  Delete white spaces that are causing test failures
  Revert "Decorated instructor dashboard with sudo_required."
  Mark too-flaky test for skipping
  Disable potentially flaky jasmine tests  SOL-1065
  TNL-394: Additional testing
  ECOM-1816: added the provider detail on the receipt page.
  modify the whitelist cert script to take list of users
  enable certificate generation for html certificates
  Update code of get_eligibility api. ECOM-1858
  Added DjangoSudo functionality for instructor dashboard and course team page
  Import missing settings module in tests of commerce views
  Final tweaks to API documentation updates
  Update AUTHORS
  Remove unused includes
  Support setting email opt-in in calls to the Otto shim
  Mark basket creation and order retrieval endpoints as v0
  Pulling JWT settings from envs tokens
  Update edx-oauth2-provider to 0.5.3
  Reorganize and update API documentation
  MA-1036 Make CourseOverviews handle malformed grading policies
  asadiqbal08/SOL-1050: Support split mongo course id for Twitter sharing URL
  ziafazal/SOL-980: Fix error while generating certificates
  Remove outdated Analytics scripts, code, and css
  Add messaging about Insights to Analytics instructor tab
  Remove everything gated by ENABLE_INSTRUCTOR_ANALYTICS flag
  Add query count tests
  asadiqbal08/SOL-1046: Convert LinkedIn anchor tag to button
  Revert MySQL-python upgrade
  Revert setuptools upgrade
  only ddx PM can activate/deactivate or delete certificate configuration
  new view added "get_provider_detail" for getting provider info with provider_id ECOM-1858
  Revert MySQL-python upgrade
  Revert setuptools upgrade
  add url link for credit checkout page ECOM-1524
  Update lxml to 3.4.4
  SOL-974 make index and remove calls use ES bulk API
  Support setting email opt-in in calls to the Otto shim
  Custom error messages for delete course command
  Update edx-ora2 and ease for lxml version compatibility
  Update edx-ora2 and ease for lxml version compatibility
  Mark delete certificates test as flaky SOL-1053
  Added New page creation animation
  Added sanitization of id names
  Added Vedran
  ziafazal/SOL-1021: Capture additional certificate configuration events
  updated graded icon indicator to use data-tooltip, font-awesome, plus hides it from screenreaders
  Allow masquerading as a specific user different from the logged in user.
  Fix indentation
  Remove `logging-not-lazy` Pylint violations
  Pylint logging-format-interpolation: Convert logging calls to use %s formatting
  Set new Pylint threshold
  Remove `superfluous-parens` pylint violations
  Clean up old style class definitions
  Convert Meta classes to new-style classes
  Remove Pylint violations `deprecated-pragma`, `bad-option-value`
  Eliminate instances of `unused-import` Pylint violation
  add data_dir to bok_choy test settings
  TNL-2389 Use discussion id map cache for thread creation and update
  Update student migration 0035 to add a dependency.
  Mark basket creation and order retrieval endpoints as v0
  Update lxml to 3.4.4
  TNL-2458 Cache discussion id mapping on course publish
  Make render_xblock return a 404 if access check fails
  Remove duplicated Teams app setting.
  ECOM-1661 removed nav links for logged out states Add context for navigation states added find course to dashboard sidebar and included check for context that Will adds in PR removed nav_course_search context due to design change so replaced with nav_hidden Removed rwd_header.js and all references as no longer being used.
  address quality violation
  when removing field from _field_data_cache when rebinding a module to a new user, also remove it from _dirty_fields (TNL-2640)
  update to course import (TNL-2270)
  Add a column for release notes in the release.py table
  bokchoy update
  update the code as per suggestions
  Students can share their certificate view on Twitter
  Visual change to new Hints and Feedback problem types
  Update translations (autogenerated message)
  reduce log severity when building marketing links
  Commerce baskets API supports cross-domain session and OAuth2 authentication
  pr feedback
  user menu cleanup
  Update AUTHORS
  Updated Commerce API to return CourseMode expiration date
  Fix for TE-745
  LMS now passes JWT issuer and expiration date to ecommerce API client
  don't install ease in editable mode
  Don't install nltk in editable mode
  Use compatible versions of edx-ora2 and ease
  Use a forked version of NLTK
  Upgrade distribute to the latest stable version of setuptools
  Update AUTHORS
  Update edx-ora2 to release-2015-07-09T14.47.
  ORA2: Focus and outline styles
  Mark test as flaky TNL-2704
  update bok choy to version 0.4.3
  Optimize grading/progress page to reduce database queries (cache max scores).
  Re-enable the video translation Jasmine tests
  Custom error message for export course command
  Update copy for On Demand Cert Download ECOM-1651
  Credit Payment - Dashboard States
  add 'provider_description' field for CreditProvider model ECOM-1842
  Fix failed test_course_about_in_cart
  Upgrade Django 1.4 to the latest point release
  Revert "edX Course/Library Import/Export API"
  Revert "Add feature flag for Import/Export API in LMS"
  Cherrypick hotfix-2015-07-07 into release candidate
  rc/2015-07-08-mattdrayer: Hide button behind feature flag
  Corrected path to Commerce API
  ECOM-1829 Removing the regen link.
  Fix migrations 0012 and 0013 in the credit app
  Update edx-oauth2-provider to 0.5.2
  Fix a small typo for credit requirements on the progress page.
  Mark a too-flaky Milestones acceptance test for skipping
  Remove unused Ruby gems
  Added more descripted release script message
  MA-779 Update student dashboard to use CourseOverview
  MA-779 Make has_access work on CourseOverview objects
  Disable flaky GroupConfigurationsPage JS test TNL-1475
  Fix a pep8 violation
  update credit eligibility ui text ECOM-1648
  TNL-2665 Prevent Taiwan from being translated
  Make the release script use the primary email from people.yaml
  [LTI Provider] Refactoring to remove the lti_run method
  Disable test specs that use old flaky sinon pattern
  Revert "Update copy for On Demand Cert Download"
  Update copy for On Demand Cert Download ECOM-1651
  add 'fulfillment_instructions' for 'CreditProvider' model + add api method to get credit provider data ECOM-1815
  TNL-2165 "play_video" event emitted after seeking forward in a video contains old position
  Fix the Paver run_all_servers method.
  Fix hinted login view to be compatible with secondary providers.
  Revert "edX Course/Library Import/Export API"
  Revert "Add feature flag for Import/Export API in LMS"
  mattdrayer/num-queries-fix: Update query value to reflect new reality
  Use the correct sinon request pattern to avoid flaky tests
  Remove unused references to AjaxHelpers
  Cherrypick hotfix-2015-07-07 into release candidate
  rc/2015-07-08-mattdrayer: Hide button behind feature flag
  Remove the DjDT profiling panel from devstack.py. It appears to cause horrendeous performance issues, while offering very little benefit.
  Adding uniqueness to some elements
  Fix 'stuck in publish issue' when deleting an item after dicarding the changes
  Corrected path to Commerce API
  ECOM-1829 Removing the regen link.
  Fixed misordered settings for devstack environment
  ECOM-1601: Added the help link of credit info
  Revert "Adding entries of Call Stack Manager in StudentModule and StudentModuleHistory"
  Enforcing lowercase currency for CourseMode
  Creating Zendesk refund notifications via API
  flag test as flaky
  Feature flag credit provider messaging on the dashboard.
  LMS: Modification in enrollment API
  Improved text in Studio Certificate Configuration
  Enable CallStackManager on StudentModule and StudentModuleHistory to capture any use outside of DjangoXBlockUserStateClient
  Fixing aria values and contrast for accessibility
  Default "Course About" image
  Fix migrations 0012 and 0013 in the credit app
  add coveralls
  Mention Confluence in the README
  Studio "Schedule & Details" page is broken in IDBx+IDB9x+2015_T2
  fixed pagination styles in teams and studio
  Implement paginated Team Topics UI
  Add generic paging framework
  Update translations (autogenerated message)
  Fixed randomized problems which were not appearing to work.
  certificate add/update/delete operations permission check
  Disable ORA 1 tabs in LMS if combinedopeneded is disabled in LMS.
  Added ability to disable xblock types in LMS.
  Update comment to match method name.
  Use new bok-choy with invisible property.
  Wait for element to not be present. (Compatible with minor bok-choy upgrade.)
  Add feature flag to skip enrollment start date filtering for course search
  Fix other temp dirs that are not cleaned up properly
  Convert some try/finally to addCleanup
  Correct parent references in one test.
  Put gitignores for test_root/uploads in one place
  asadiqbal08/SOL-766: Add Facebook sharing to certificate view
  mattdrayer/update-num-queries-check: Modify value to reflect improved workflow(s)
  Add feature flag for Import/Export API in LMS
  edX Course/Library Import/Export API
  Credit requirement optimizations
  ziafazal/SOL-980: Generate certificates from instructor dashboard
  Update docs for testing common requirejs tests
  Carol's edits
  Credit eligibility/provider refactor
  Mark test as flaky; TNL-2647
  fixed trailing white space errors
  change redirect url from '/accounts/login' to '/login' ECOM-1734
  fix pep8 violations
  Lower pylint threshold to 7000!
  Support running Studio with optimized assets
  use 1 coveragerc file to generate 1 coverage report per build
  Fixed quality report
  Revert "Fixed randomized problems which were not appearing to work."
  Fixed pylint line-too-long violations
  Additional references to "Pending Instructor Tasks" changed
  Add the Poll XBlock to the requirements and ADVANCED_COMPONENT_TYPES.
  Remove border from chromeless xblock
  Fixes header styling issue introduced in SOL-734 (#8389) by reverting heights to what they were before that PR
  missing quote catch by Christine
  Mark's edits
  Add grading spec tests.
  Fix not being able to set course passing grades above 80%.
  fixup! removed css comments from _courses.scss, fixed rebase issue which resulted in having only 1 course on tablet (medium) size layouts
  fix python unit tests
  search input element styling improvements, test clean up
  Initial syles cleanup and changes for course discovery on openedx
  Fixed randomized problems which were not appearing to work. TNL-2551
  get_certificate_url should return certificate download_url in case of non html certificates
  Order of Credit Eligibility line items
  Fix errors with fetching Shibboleth metadata
  Added course endpoints for Commerce API
  Dark lang middleware: Check if user is authenticated
  Improve logging of ecommerce interactions
  Add Albert Liang to AUTHORS
  TNL-2623 Fix bug where status icons were hidden in image response problems
  Add missing comma to tuple
  give the header the right height in the verify flow ECOM-1808
  Fix XBlock class loading in local resource view
  Handle dates have year smaller than 1900
  Display warning message on course outline in Studio when course contains deprecated features/components
  Improve screen reader user experience on logistration page
  Remove "instructor" label or change to "Admin"
  generic and Team card/listing FED
  Fix: users without course creation permission were not shown new library form
  update xblock only to mark field values as dirty if they've changed (TNL-2475)
  Fixes DOC-1957
  Fix login/logout errors caused by unicode cookie names
  Allow group_id to be set in discussion API
  Make resetting of attempts and student state on blocks recursive.
  Delete unused student_profile code (WIP profile).
  Update translations (autogenerated message)
  Fix i18n paver command wrt cleanup
  Responsive Homepage Hero, Header, Footer
  ECOM-1597 adding signals to update min-grade requirement.
  New course cannot be started till web certificate is active
  Don't i18n test files
  Update i18n-tools to latest version
  fix for instr dash and wiki responsive
  New Hinted Login View - PR 8591
  New provider config options, New Institution Login Menu - PR 8603
  Bump python-social-auth and python-same to upstream's latest master - PR 8599
  Asynchronous metadata fetching using celery beat - PR 8518
  New SAML/Shibboleth tests - PR 8518
  Use ConfigurationModels for third_party_auth, new metadata fetching - PR 8155
  SAML2 third_party_auth provider(s) - PR 8018
  Put a timeout on poling for codeinput and matlab problems.
  Set Courseware Search to False in default devstack, because it doesn't work
  Dark language should stay set until explicitly cleared.
  [LTI Provider] Added an authentication backend to log in LTI users
  Regression test: dark lang stays set through multiple pages
  Add i18n roundtrip regression tests for language pref and dark lang
  Replace deprecated 'django_language' key with LANGUAGE_SESSION_KEY
  Add i18n regression tests (LOC-72, LOC-85)
  dark_lang: only allow released langs in accept header LOC-72, LOC-85
  Store released dark_lang codes as all lower-case
  Port django.utils.translation.trans_real.parse_accept_lang_header from Django 1.8
  Port django.middleware.locale.LocaleMiddleware from Django 1.8
  Fix hint-problem tab bug TNL-2542
  Consolidating merge from rebase
  Sample more frequently, and always record unexpected cache misses
  Improve the structure cache metrics with a course context, more standardized from_cache tag, and compression sizes
  Fix XBlock inheritance ordering. XBlockMixin and derivatives should always come after XBlock and derivatives
  Making background pictures printable
  mattdrayer/fix-progress/template: Improved web certificates support
  removing extra bold font-weight (800) from style rules/typeface files
  removing unnecessary typeface file formats + adding optimized .woff2 formats
  fix the source_version xblock after discard changes
  Accept string-encoded timestamps
  Make credit provider callback CSRF exempt
  Remove restrictions on library creation in Studio
  PHX-40 added the sorting of the most popular coupon codes used.
  MA-879 Fix bug in course_start_datetime_text
  Fixes DOC-1715, video doc is now in the correct RTD project
  Pass XBlock parents down to their children when constructing them, for caching
  Include stack traces when counting calls in unit tests
  Gracefully handle credit provider keys with unicode type
  LMS: revising and minimizing font-face calls
  Studio: revising and minimizing font-face calls
  mattdrayer/SOL-449: Add flaky decorator to bok choy test
  Fix flaky test_import_timestamp test.
  Update Bok Choy to use optimized static assets
  Reverification flow asks for permission to use the webcam twice
  Adding dependency for edx-user-state-client
  Make the user info cookie secure
  Update credit eligibility
  Update URL when switching between Team tabs.
  Fix flaky test.
  User info cookie
  Shorten long lines to resolve pylint issues
  Fix misleading enrollment API documentation
  split common/lib and js unit tests into separate shards
  Move forgot_password_modal to login.html.
  Credit Eligibility display on the CMS accessibility issues
  ECOM-1524: Display credit availability on the dashboard
  add tests for structure cache use default cache for tests add test for when cache isn't configured add test for dummy cache noop if no cache found
  Cache SplitMongo course structures in memcached.
  Add abuse flagging to discussion API
  Remove unused setting.
  Delete files that have no references to them.
  Remove duplicate logged-in-cookie helper methods
  pass debug option through to compile_sass
  don't use hardcoded date in verification email test
  XCOM-416: Embargo restrictions are now enforced during logistration
  Add followed thread retrieval to discussion API
  Set a minimum number of Xblock constructions in field override tests
  Update bok-choy version
  Switch tabs to use ugettext_noop for titles.
  Fixes tests, adds internationalized strings for new state tooltips, corrected tooltip javascript, etc.
  ECOM-1772 Due date issue test case fixed.
  Cache SplitMongo course structures in memcached.
  MA-776 change UserCourseEnrollmentsList endpoint to use course_overviews
  MA-772 create app course_overviews for caching course metadata
  Add new testing decorator check_mongo_calls_range
  Correct logistration GET parameter preservation test case
  Fix JS tests that broke due to a conflict between merges
  mattdrayer/ECOM-1773: Fixed invalid URL reversal
  Revert "Merge pull request #8402 from edx/sarina/annotate-middleware"
  Respond to code review feedback.
  ECOM-1772 Due date issue test case fixed.
  Update the format of the credit provider timestamp.
  Reverification iOS support and refactor
  Remove Hints tab from Studio
  Use RequireJS Optimizer for content libraries
  Updates the XBlock utilsrequirement to the latest
  Remove hinting templates as 'tab:' definition fails on Split
  Fixed two paly_video events emitted on video replay. TNL-2166
  Iniital refactor of capa styling for basic checkbox and multiple choice problem types, including additional comments to sass styles
  fix problems with multi-seat purchases when accessibility review was completed
  Upgrade rednose to latest to fix bad output.
  Credit eligibility requirements display on student progress page
  Learner profile Location and Language fields Accessibility issues
  ECOM-1772 Due date issue test case fixed.
  Fix flaky test. SOL-975
  I18N needs to not include the string substitution
  Adding call stack manager
  adjust margin-bottom on courseware with license
  Make course tab refreshing safer.
  Updated Payment Buttons
  fixup! Enforce MAX_COMMENT_DEPTH in discussion_api
  Add editable_fields to discussion API responses
  Handle whitespace-only content in discussion API
  fix price per seat
  Update translations (autogenerated message)
  ECOM-1673 removed class and icon to always show full upsell content. removed JavaScript function specific to the upsell toggle removed bok choy test Removed all referenced to toggleExpandMessage()
  Wrap course structure generation task in bulk operation.
  Fix CRI-9 so third_party_auth pipeline always completes, and consolidate auto-enrollment code
  Changes for compatibility with latest python-social-auth (0.2.7)
  MA-844 Video Upload: remove dependency on AssetMetaDataStore.
  Re-nest for the signal-sending, then un-nest. Change publish signal test to reflect new behavior.
  Enforce MAX_COMMENT_DEPTH in discussion_api
  Fix SEARCH_ENGINE set logic in settings files
  Treat aggregate sums of None as 0
  Make a11y test inherit from a base class
  Fix discussion_api to handle old threads
  Update edx-milestones Github reference
  TNL-1893 Teams Topic Card
  SOL-939 Jasmine Tests
  Add rendered_body to discussion API endpoints
  Extended Feedback and Hints for Problems
  Improve cohort test
  TNL-2291 Add caching to discussion forum permissions
  Update bok-choy cached db with latest migrations
  Disable lineage traversal when no providers are specified in OverrideFieldData
  Add enable_ccx to the suite of override performance checking tests
  Only enable the OverrideFieldData when there are active overrides on a course.
  compile sass in quiet mode unless debug=True
  Revert "Update bok-choy version and move to base.txt"
  Ensure noseid dir exists when running tests
  Add professional enrollments to the instructor dashboard.
  Make edxmako cache properly with changing lookup paths
  Lower pylint threshold to 7100
  Add background to focused labels for cleaner display
  Improve support for right to left languages
  add Richard Moch to AUTHORS
  set .response-header-actions block to absolute position to allow overlap with title
  Add text_search parameter to discussion API
  SOL-994 fix js loading if search features disabled
  Display error message on ORA 1 components in units in Studio.
  update reverification block version to fix error for 'skip_reverification' service method ECOM-1738
  Add comment voting to discussion API
  Fix typo in Instructor dashboard UI text
  Update studio templates to remove fieldset and legend tags
  Fix modal css to be hidden immediately
  Remove extra lean modal trigger
  update edx-search hash to include faceted search
  first wave cleanup of fixed width at page level in LMS
  ECOM-1494 deleting models from database through new migrations.
  Ensure that is_hidden does not affect equality checks.
  Certificates: addressing a11y feedback
  Executive Summary Report
  update the ICRV requirments status
  Update bok-choy version and move to base.txt
  Add discussion API course endpoint
  ECOM-1683 removing regen-cert code.
  Removing element selectors
  PR feedback and receiept template updates
  modernize the dashboard button styles
  Fixed the empty list price issue. Added columns to the CC purchases report. (added Qty and Total Discount. Moved the Total Amount to the last index). Coupon code report.
  PR feedback
  Display Eligibility table on progress page
  remove in-memory files
  LMS: Modification in enrollment API
  Add a11y test for lms student dashboard
  Jasmine test runner for files in common using RequireJS.
  Correct issue for RequireJS optimizer.
  Convert to RequireJS text for templates
  Create a common paginated list view
  Fix bug in discussion API comment update
  Clear all caches before measure FieldOverride performance
  Reduce the number of queries when walking parents in MongoModuleStore by avoiding cache misses on the data due to missing runs
  Measure XBlock instantiations in FieldOverride performance tests
  Allow check_sum_of_calls to measure methods as well as pure functions
  Better simulate a request happening in the LMS in FieldOverride performance tests
  certificates event tracking
  Delay constructing the set of mongo calls until they're needed
  Use the more abstract api for parsing UsageKeys in mongo/base.py
  Make RequestCache.clear_request_cache a classmethod
  Add CCX SQL query/mongo read tests
  Add Sven Marnach to the AUTHORS file.
  Add feature flag to allow hiding the discussion tab for individual courses.
  Add i18n regression tests (LOC-72, LOC-85)
  dark_lang: only allow released langs in accept header LOC-72, LOC-85
  Store released dark_lang codes as all lower-case
  Port django.utils.translation.trans_real.parse_accept_lang_header from Django 1.8
  Port django.middleware.locale.LocaleMiddleware from Django 1.8
  Deprecate course details API v0
  Increasing contrast in course nav accordions
  Update translations (autogenerated message)
  MIT CCX: Use CCX Keys: further revisions in response to code review
  Prevent duplication of tabs with different names.
  Log an exception before swallowing it in a KeyValueMultiSaveError
  Don't pass in a user object to DjangoUserStateClient
  Convert access to StudentModuleHistory to use the UserStateClient API.
  ECOM-1724 a11y footer updates
  Fix flaky lettuce test. TNL-1452
  Make addCleanup idempotent.
  This change cleans up the work in progress request at #8176
  MA-725 responsive_ui indication on responsive xBlocks.
  MA-792 Course Blocks and Navigation API (user-specific)
  Video module support for student_view_json.
  Make RequestCache reusable
  Specified number of mongo and split calls in xblock outline handler test with ddt. PLAT-674
  add name param check_transcripts
  show credit eligibility requirements in studio ECOM-1591
  MIT CCX: Use CCX Keys - responses to code review
  MIT CCX: Use CCX Keys
  Revert "[LTI Provider] Basic LTI authentication"
  Avoid POSTing unnecessary payment processor parameter
  In bulk_operations() exit, emit signals at the end.
  Added comment deletion in the discussion API
  Payment button UI modifications
  Receipt page now also handles Cybersource payment failures.
  Add comment endorsement to discussion API
  Add myself to AUTHORS
  Add comment editing to discussion API
  Credit provider integration Python API
  Flag test as flaky. See SOL-975
  Removed IsAuthenticatedOrDebug
  Web Certs: adjusting base/honor-code rendering to only hide staff signatures
  TNL-1907 Implement Course Team Membership API
  tidying up loose ends from sass compilation to css dir change
  mattdrayer/SOL-449: Remove @skip decorator
  Remove V2 of the EdX.org footer
  Remove unused code left over from ECOM-188.
  ECOM-1644 minor message updation.
  Fixes bug with app links in new footer
  Fixed slow transaction on xblock outline handler. TNL-2425
  Fix for flaky behavior in cohort search tests. TNL-2362
  Payment button UI modifications
  Fix updating immutable request dictionary.
  SOL-971
  ECOM-1494 removing models only.
  Add jasmine tests for ccx schedule code.
  revising expected output paths for Django Pipeline
  Added includes_expired parameter to enrollment API
  mattdrayer/SOL-952: Update default URLs and add backwards migration
  BUGFIX: CCX icon FA4 conversion
  BUGFIX: fix  FA4 conversion for a few icons
  Profile Images API doc
  Move _creative-commons.scss into elements directory
  transcript name param url
  Moved Creative Commons CSS into Sass
  Update testing.rst
  move lms edx notes tests to shard_4
  Use dicts when defining JSON
  Update testing.rst
  Updating account_settings_url for bulk emails.
  Removing course_title from email subject.
  Fix flaky lettuce test. TE-572.
  ECOM-1644 Implementing course-access roles.
  PLAT-643 Fixed cms course export
  [LTI Provider] Fix bug preventing unenrolled users from accessing content
  UX-2011: adding print-based styles for Open edX web certs
  Use parent_id returned from the comments service
  move bok choy studio split tests to shard_2
  move bok choy video license tests to shard_2
  move bok choy discussion tests to shard_2
  Added delete thread in discussion api
  Refactor and merge CourseViewType and CourseTab.
  Improve README for openedx directory
  TNL-1891 Browse Teams: Category Subnavigation
  Removing conflict from header
  Fixing test to match CSS
  add ccx-keys as a dependency of edx
  ECOM-1572 implementing code to new branch.
  Tweaked names of badge events.
  linda adding name to authors file
  Credit provider integration Python API
  Update github.txt to use a tag instead of a commit
  unskip acid xblock tests
  DOC: Finalize Help targets, sidebar text for certificates
  don’t trigger a refund request in otto, if otto requested unenrollment.
  Correct deactivation logic in enrollment api and test.
  Allow multiple external_link tabs for one course.
  Bump edx-submissions hash to latest version.
  update edx-search commit reference
  (SOL-835) Addressing flakiness of the reindex acceptance test
  make courses.html also honor the ENABLE_COURSE_DISCOVERY feature flag
  Default to filestorage when S3 isn't configured (aws.py)
  refactored code to make certificate PDF generation optional
  asadiqbal08/SOL-961: Student-generated certificate flow shows "download" certificate button
  Skip test that has become too flaky. SOL-449.
  mattdrayer/SOL-947: Refactor Web/HTML certificate URL patterns
  Allow released languages to be previewed under dark lang
  Fix self-paced badge naming.
  Use Django 1.4 @ensure_csrf_cookie method PLAT-664
  Add thread voting to discussion API
  Change name of section from Sales to Course Seat Purchases
  Update translations (autogenerated message)
  Fixed youtube video was not loading even youtube is available. TNL-2361
  Add ability to follow a thread in discussion API
  MA-722 Render xBlock API Support
  Follow imports order guidelines.
  Set up Credit Provider Model
  www.stage.edx.org is our Drupal site
  Flag test as flaky. SOL-449
  Flag test as flaky. TNL-2386
  mattdrayer/SOL-953: Remove Mako UNDEFINED overrides
  asadiqbal08/SOL-946: Remove default value for course title override
  ECOM-1684 updated footer styles in line with Marketing requests
  TNL-1652: Allow instructors to obtain CSV file listing students who may enroll in a course but have not signed up yet.
  Enable VAL URLs even when mobile API is disabled
  Add Tim Krones to AUTHORS.
  handle more exceptions for file uploading
  TNL-1900 Implement teams header component
  Add thread editing to discussion API
  Removing uppercase requirement
  Reducing size of error message heading
  Learners don't need to be lean
  Add tests for enrollment deactivation under various modes.
  add Xiaolu's name
  Change the misleading doc string (str doesn't has attr 'name' )
  Adding myself to AUTHORS
  DOC-2044 Fixing factor-of-ten error
  Add metrics around all split-mongo database operations measuring count, duration, and approximate size
  Fixed wiki pointing to old course's wiki in rerun courses. TNL-2314
  Bug - Unicode character in tab number shouldn't return 500 #TNL-2055
  update tests to match text changes
  Disabled CSRF Validation for checkout cancel page
  Add student bio max_length to migrations.
  Update enrollment code confirmation emails
  Update Instructor Dashboard UI text for enrollment codes
  Update UI text for Saudi e-commerce features on the Instructor Dashboard
  disable contracts that were breaking capa problems on devstack (TNL-2343)
  [LTI Provider] Basic LTI authentication
  time how long imports take in datadog
  base teams space (template) and create team form
  SOL-916 Add ability to query, enable, disable, unredeem Enrollment Codes
  Update XBlock dependency to use the merged commit from the edx repo
  [LTI Provider] Bugfix in LtiConsumer handling code
  TNL-1897 Implement Course Team API
  Centering text in sign in button vertically
  Group imports together in Mako templates
  add script for jenkins to run accessibility tests
  Expose EDXNOTES_PUBLIC_API/EDXNOTES_INTERNAL_API
  Added Christopher Lee to authors list
  MA-642 Add topic_id query to discussion/thread api
  fix tolerance rounding error (TNL-904)
  use 'name' field in 'CreditRequirement' model to save the location of xblocks
  'pause_video' event should emit in addition to the 'stop_video' when user watches the video completely (For Youtube videos)
  Add support for edX namespaced define.
  2.0.14 version of requiresjs/text
  Add teams tab
  SOL-536 Experiment-Aware content search
  set default on is_entrance_exam
  Updated AUTHORS
  Allow for keyed ConfigurationModels + New Admin UI
  [LTI Provider] Use LTI Outcome Service to pass back scores
  Fix for flaky library users studio test, SOL-618
  Convert all tabs to the new plugin framework.
  Analytics events for badges.
  Allow sharing of badges through the certificate web view.
  Implement OpenBadge Generation upon Certificate generation through Badgr API
  SOL-236 Manual Enrollments
  Add extensible course view types for edX platform
  Add additional "reason" field to CreditRequirementStatus
  Overall Grade Range in Grading does not show consistant view when grades are removed
  Added ccx enable/disable flag to advance settings and show hide ccx coach option on lms
  Delete unused methods.
  Fix simplifiable-range pylint warnings.
  Update edx_lint to latest, with range checker
  Remove table of contents
  Replacing top border on footer
  Updated LTI render courseware test
  ECOM-1592: code refactoring
  don't assume in the ORM query a single RegCodeRedemption per enrollment record
  No indication the photo was taken
  ECOM-1592: Adding incourse reverification as a credit requirement in course
  New Feature: Certificates Web View
  Avoid loading all users for "reviewing user" on the verify_student admin page.
  Translate error message for unsupported file format
  Add JSON response to auto_auth with anonymous_id
  Enable the browser's spellcheck in tinymce
  PR feedback
  ECOM-1678: Fix broken footer image URLs when using a CDN.
  handle more exceptions for file uploading
  use reverification xblock location as an identifier of reverification checkpoint ECOM-1612
  Prevent Django admin from loading all users for verify student models.
  (SOL-883) RTL support for Registration Code redemption page
  Course Discovery - Language Filtering
  Course Discovery feature using edx-search
  Internationalize help text
  Add correct_or_past_due option for showanswer help text (ref bbeb79cb)
  Use platform name, not edX, in all strings
  Add Video Bumper.
  fix quality violation
  Revert "Fieldset and legend solution is lost when edit Problem"
  Revert "changes for failing label test"
  Make clean_history.py use the StudentHistoryModule django model.
  fixup! Enable HTML in note tags and support highlighting
  Wrap _invoke_xblock_handler in a bulk_op.
  Update translations (autogenerated message)
  Allow specification of ReadPreference via DOC_STORE_CONFIG. Use a MongoReplicaSetClient for Split modulestore, but only if replicaSet config is set.
  Add comment creation to discussion API
  Removing background-image from button hovers
  Add fake Arabic testing language
  Fix credit requirement "criteria" name
  SOL-839 confirmation and receipt page internationalization
  Suppress email for refunds unless mode is verified.
  Use publicly-accessible ecommerce URL root when constructing refund email
  Fix bug when student scoring error occurs with no message.
  TNL-2269 Compute language direction every time.
  ECOM-1339 minor CSS tweaks for the footer. It now extends the full width of the browser and fixes issues with link hover states.
  Accessibility tweaks and patching RTL
  Revert "i18n lon-capa problem explanation title"
  Use publicly-accessible ecommerce URL root when constructing refund email
  ECOM-1339 Branding API footer
  Calculator a11y issues
  ECOM-1590: added the min_grade as a requirements
  Initial chromeless template
  Allow course creation after deletion at same URL
  Ignore migrations in coverage reports
  Add timestamp value test
  [LTI Provider] Documentation fix
  Move generic mobile API view decorators.
  Logging invalid key errors
  Addressing review comments
  Minor update to video_outline API.
  Add UI acceptance test
  Add cancel() on object interface
  Add "following" parameter to thread creation
  added line with variable declarations to stop these being global, removed a bit of spurious whitespace at the end of another line
  MA-738 OAuth2 token exchange for session cookie.
  ECOM-1494 removing code from models.
  Improvements on error handling + misc
  PR feedback
  Fix XSS vulnerability in User Profile.
  fix verification widget layout on dashboard
  Add thread creation to discussion API
  Add an explicit accessibility test TE-890
  Update translations (autogenerated message)
  Minor refactoring
  Fix documentation comment for enrollment API
  Continue to Payment button is not accessible
  TNL-2223 Inline discussion jumps to the bottom of the page when thread is expanded.
  Add framework for testing the effects of modulestore operations on OLX. Add tests for all course-changing operations from the ModuleStoreDraftAndPublished interface. Enforce the OLX format of draft and published items for those ops.
  Use jshint in paver, include in builds.
  SOL-794 Detailed Enrollment Report - added the abstract and concrete layers of enrollment report provider - created a celery task. -added the button in the e-commerce reports section
  Revert "Enable PyContracts during tests"
  Load creative-commons icon CSS on RTL pages
  boostrapper -> bootstrapper
  Allow CourseAboutFactory to be used without django by explicitly passing in a modulestore
  Add timestamp on success step + refactoring
  Add moment.js
  fixed invalid CSS selectors
  (SOL-837) Added RTL support to payment page
  Update commit hash for problem-builder.
  ECOM-1472: js nitpick fixes
  Fixed call to refund creation endpoint
  Fully enable licensing on devstack
  Expose `EDXNOTES_INTERFACE` from configuration
  Add comment list URLs to discussion api threads
  ECOM-1600 fixing certs button issue.
  added jasmine tests for focusing on and scrolling to newly added textbook
  Implement student-initiated refunds for external commerce service.
  Add endorsement fields to comment list API
  Bumped xblock-utils version
  ECOM-1472: js nitpick fixes
  Add ability to specify starting dir for bok-choy tests
  ECOM-1472: fixed the tab issue for taking photo
  Add jshint npm package.
  Add __len__ to FieldDataCache
  Standardize on triple double-quotes for docstrings
  Improve documentation of courseware.model_data
  Record valid scopes when raising InvalidScopeError
  Make the use of StudentModules explicit in variable names in user_state_client.py
  Use a specialized method to clean up DjangoKeyValueStore
  Add contracts to DjangoXBlockUserStateClient interface methods
  Add a test case for an XBlock that has no student state fields, but sets a score
  Use DjangoXBlockUserStateClient to implement UserStateCache
  Move query-chunking into StudentModule and related ORM-objects
  ECOM-1590 adding new field in advance_settings.
  Remove the ability to `select_for_updates` from FieldDataCache.
  Use current OpaqueKeys methods when loading a block for the XQueue callback
  Clarify the interface used by xqueue_callback to load an XBlock
  Inline some private methods in UserStateCache
  Add implementation of get_many and set_many to DjangoXBlockUserStateClient
  Add more documentation to XBlockUserStateClient interface
  Enforce user-state only for StudentModule backend Client
  Add an empty implementation of XBlockUserStateClient backed by StudentModule
  Reorder methods in UserStateCache
  Flatten DjangoOrmFieldCache methods into UserStateCache
  Add a last_modified method to FieldDataCache
  Add a temporary set_grade method to the FieldDataCache and UserStateCache
  Use per-type cache set_many calls in FieldDataCache set_many
  Push `get` down into per-type caches
  Implement per-type set methods in terms of set_many methods
  Make test_model_data test_set_many_failure slightly more robust
  Push `set_many` save() calls into per-type caches
  Push `set_many` object creation down into per-type caches
  Add more documentation to DjangoOrmFieldCache
  Inline find_or_create
  Move `has` logic down into per-scope caches
  Move `delete` logic down into per-scope caches
  Move the logic from `find` into the methods that use it
  Push `has` down into FieldDataCache from DjangoKeyValueStore
  Push `delete` down into FieldDataCache from DjangoKeyValueStore
  Push `set_many` down into FieldDataCache from DjangoKeyValueStore
  Push `get` down into FieldDataCache, from DjangoKeyValueStore
  Push cache_key transformations inside the cache objects
  Extract common django-orm-backed-cache functionality
  Stop leaking private _data members from per-scope caches
  Store cache objects, rather than dictionaries generated by cache objects
  Extract _all_block_types and _all_usage_keys out of cache class
  Separate caching for particular fields from instantiating the cache
  Change the central cache to store at two levels: first by scope, then by cache key
  Move field_object -> cache_key transformations to the scope-specific caches
  Push field_object iteration inside _retrieve_fields, and rename to _cache_fields
  Extract cache instantiation into classes per-scope
  Extract query chunking from FieldDataCache
  Add the candidate XBlockUserStateClient interface
  Enable PyContracts during tests
  Fix cyclic import in pavelib
  need to urlencode the course_id when constructing the registration redirect query string
  Add comment list endpoint to Discussion API
  fix for broken course status label on outline page
  added myself to AUTHORS
  Update overview.rst
  [LTI Provider] Refactoring and clean-up
  scroll to newly created section and make first input element active on creation of a new textbook in the textbooks list page (fix for https://openedx.atlassian.net/browse/TNL-130)
  ECOM-1590 adding models for credit eligibility.
  Update devops in requirement file comments
  Supply default url for XQA server
  Update student notes eventing for tags.
  Create email message only when it will be sent
  Added Randy Ostler to AUTHORS
  MAYN-65 fixed the bug, removed the redemption table entry when the item is expired from the user cart
  changes for failing label test
  Fieldset and legend solution is lost when edit Problem
  Allow enrollment API to deactivate enrollments
  Skip test. TNL-1590
  Remove unused css
  Passing full name to E-Commerce API
  Default course license to All Rights Reserved
  Courseware license (Creative Commons): FED
  Make courseware licenses show up in Studio XBlock previews
  Creative Commons: Accessibility improvements
  Wrap block with license info in LMS only
  Move LicenseMixin into VideoFields class
  Added a simple XBlockMixin for courseware licenses
  Skip flaky test. SOL-618.
  Display Scope.content fields in Studio editor
  Refactor discussion API to use DRF serializer
  Move Discussion API access control checks
  updated dashboard html to remove rebase bug which displayed the username to learners
  ECOM-1547 created new template and Sass file for new footer. Wrapped it in a feature flag and updated previously named footer-edx-new.html to footer-edx-v2.html to better track/name updates to the footer going forward. ECOM-1547 removed data-updated attributes from body ECOM-1548 added JS file that inits analytics event listener and makes ajax call to API to get footer and HTML and add it to the DOM ECOM-1547 code review cleanup ECOM-1547 rebase and Sass appraoch update after @talbs the IE9 killer slayed the mighty beast. ECOM-1547 updated file names and added comments in light of @talbs review of PR ECOM-1547 update to social media link styles and nav link order ECOM-1547 updated SOCIAL_MEDIA_FOOTER_NAMES if ENABLE_FOOTER_V3 is true ECOM-1547 added translations to screenreader text ECOM-1547 fixed test and renamed files in line with @talbs's pending PR ECOM-1547 cleaned up file naming
  Ensure GA events have a course label if available
  Add Richard Moch to AUTHORS
  i18n lon-capa problem explanation title
  MAYN-68 fixed the bug, total credit card purchases amount does not include the bulk purchases.
  update xml
  The SAMPLE feature flag is not used anywhere
  Remove MathPlayer message
  add more detailed comment about exit status
  SOL-495 Cohort-Aware content search
  LMS: removing now unnecessary IE-specific _ie.scss Sass partial
  Studio: renaming Sass/CSS files for consistency and clarity
  LMS: renaming Sass/CSS files for consistency and clarity
  Enable HTML in note tags and support highlighting
  clean up all-tests.sh script
  Complete printing cleanup, rebased into one
  ECOM-1471 Hiding the text.
  lightened harshness of dashboard modal styling

Conflicts:
	CHANGELOG.rst
	cms/djangoapps/contentstore/tests/test_course_settings.py
	cms/djangoapps/contentstore/utils.py
	cms/djangoapps/contentstore/views/component.py
	cms/djangoapps/contentstore/views/tabs.py
	cms/djangoapps/models/settings/course_details.py
	cms/envs/aws.py
	cms/envs/common.py
	cms/static/cms/js/require-config.js
	cms/static/js/models/settings/course_details.js
	cms/static/js/views/settings/main.js
	cms/static/sass/_base.scss
	cms/static/sass/elements/_header.scss
	cms/templates/js/add-xblock-component-menu-problem.underscore
	cms/templates/widgets/header.html
	common/djangoapps/student/models.py
	common/djangoapps/student/tests/tests.py
	common/djangoapps/student/views.py
	common/djangoapps/third_party_auth/provider.py
	common/lib/capa/capa/responsetypes.py
	common/lib/capa/capa/templates/choicegroup.html
	common/lib/capa/capa/tests/test_files/extended_hints_checkbox.xml
	common/lib/capa/capa/tests/test_files/extended_hints_with_errors.xml
	common/lib/capa/capa/tests/test_hint_functionality.py
	common/lib/xmodule/xmodule/capa_base.py
	common/lib/xmodule/xmodule/course_module.py
	common/lib/xmodule/xmodule/css/capa/display.scss
	common/lib/xmodule/xmodule/js/fixtures/video.html
	common/lib/xmodule/xmodule/js/fixtures/video_all.html
	common/lib/xmodule/xmodule/js/fixtures/video_html5.html
	common/lib/xmodule/xmodule/js/fixtures/video_no_captions.html
	common/lib/xmodule/xmodule/js/fixtures/video_yt_multiple.html
	common/lib/xmodule/xmodule/js/spec/capa/display_spec.coffee
	common/lib/xmodule/xmodule/js/spec/problem/edit_spec_hint.coffee
	common/lib/xmodule/xmodule/js/src/capa/display.coffee
	common/lib/xmodule/xmodule/js/src/video/01_initialize.js
	common/lib/xmodule/xmodule/js/src/video/03_video_player.js
	common/lib/xmodule/xmodule/tabs.py
	common/lib/xmodule/xmodule/templates/problem/checkboxes_response_hint.yaml
	common/lib/xmodule/xmodule/templates/problem/multiplechoice_hint.yaml
	common/lib/xmodule/xmodule/templates/problem/numericalresponse_hint.yaml
	common/lib/xmodule/xmodule/templates/problem/optionresponse_hint.yaml
	common/lib/xmodule/xmodule/templates/problem/string_response_hint.yaml
	common/lib/xmodule/xmodule/tests/test_tabs.py
	common/lib/xmodule/xmodule/video_module/video_module.py
	common/test/acceptance/pages/lms/problem.py
	common/test/acceptance/tests/lms/test_lms_problems.py
	lms/djangoapps/branding/tests/test_page.py
	lms/djangoapps/branding/views.py
	lms/djangoapps/bulk_email/tasks.py
	lms/djangoapps/certificates/management/commands/ungenerated_certs.py
	lms/djangoapps/certificates/queue.py
	lms/djangoapps/certificates/views.py
	lms/djangoapps/class_dashboard/dashboard_data.py
	lms/djangoapps/courseware/access.py
	lms/djangoapps/courseware/module_render.py
	lms/djangoapps/courseware/tabs.py
	lms/djangoapps/courseware/tests/test_access.py
	lms/djangoapps/courseware/tests/test_module_render.py
	lms/djangoapps/courseware/tests/test_video_mongo.py
	lms/djangoapps/courseware/views.py
	lms/djangoapps/dashboard/sysadmin.py
	lms/djangoapps/dashboard/tests/test_sysadmin.py
	lms/djangoapps/django_comment_client/forum/tests.py
	lms/djangoapps/instructor/tests/test_api.py
	lms/djangoapps/instructor/utils.py
	lms/djangoapps/instructor/views/api_urls.py
	lms/djangoapps/instructor/views/instructor_dashboard.py
	lms/djangoapps/instructor_analytics/tests/test_basic.py
	lms/djangoapps/instructor_task/api.py
	lms/djangoapps/instructor_task/tasks.py
	lms/djangoapps/instructor_task/tasks_helper.py
	lms/djangoapps/instructor_task/tests/test_api.py
	lms/djangoapps/instructor_task/tests/test_tasks.py
	lms/djangoapps/instructor_task/tests/test_tasks_helper.py
	lms/djangoapps/lti_provider/tests/test_views.py
	lms/djangoapps/mobile_api/testutils.py
	lms/djangoapps/student_account/views.py
	lms/djangoapps/verify_student/tests/test_views.py
	lms/envs/aws.py
	lms/envs/common.py
	lms/static/coffee/src/instructor_dashboard/data_download.coffee
	lms/static/js/spec/views/fields_spec.js
	lms/static/js/student_account/views/account_settings_factory.js
	lms/templates/courseware/course_navigation.html
	lms/templates/courseware/courses.html
	lms/templates/courseware/courseware.html
	lms/templates/courseware/progress.html
	lms/templates/dashboard.html
	lms/templates/dashboard/_dashboard_course_listing.html
	lms/templates/instructor/instructor_dashboard_2/send_email.html
	lms/templates/main_django.html
	lms/templates/navigation.html
	lms/templates/student_account/account_settings.html
	lms/templates/sysadmin_dashboard.html
	lms/templates/video.html
	requirements/edx/github.txt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants