* Remove m2m relation between credit course and credit providers.
* Separate eligibility and provider APIs into different modules.
* Add API call for retrieving a user's eligibilities.
* Cache credit course list.
* Style the dashboard purchase button.
* Display a link for the credit provider on the dashboard.
* Add analytics events for clicks on the purchase button.
* Expose more credit models to Django admin and add search functionality.
* Update credit eligibility when a user satisfies an eligibility requirement.
* Refactor set_credit_requirement_status arguments.
* Use django-simple-history to track requirement status changes.
* Refactor progress page by moving credit into a helper function and adding comments.
Updated styling for basic capa problems (multiple choice, dropdown, checkboxes, numerical input and text input) including support for mobile app experience.
some optimisations
refactored code and added created event
added test to make sure generate event is emitted
changes based on feedback on 6/11
added certificate web page and tests
fixed quality violations
only require ccx-keys once
get_current_ccx will now expect a CourseKey instance as its argument, and will raise a value error if this expectation is not met.
document reason for local import
add special methods to pass attribute setting and deletion through to the wrapped modulestore
add __setattr__ and __delattr__ per code review, update __init__ to work with new methods
style change per code review
clean up context manager usage as recommended by code review
remove unused code and imports
convert modulestore type tests to use the `get_modulestore_type` api, remove unused imports
code quality: add docstrings
increase coverage for utils tests
fix bug found in testing.
increase test coverage on modulestore wrapper
code quality fixes
code-quality: ignore import error, but mark site for future consideration
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.
remove references to middleware that were missed previously
use key apis rather than local implementation of key conversion. remove local implementationa
remove spurious test for attribute
fix test setUp to avoid unneeded flattening
code quality fixes
add security check ensuring that the coach is coach for *this* CCX.
prevent ccx/deprecated course id problems
1. do not allow ccx objects to be created if the course id is deprecated
2. filter out any ccx memberships that involve deprecated course ids (in case there are bad ccxs in the database)
Fix test failures and errors arising from incorrect code path execution
Create context manager to handle unwrapping and restoring ccx values for the modulestore wrapper, employ it throughout modulestore wrapper implementation