learning-paths-plugin
Purpose
A Learning Path consists of a selection of courses bundled together for learners to progress through. This plugin enables the creation and management of Learning Paths.
License
The code in this repository is licensed under the GNU AGPLv3 unless otherwise noted. Please see LICENSE.txt for details.
Installation and Configuration
Clone the Repository
Clone the repository containing the plugin to the src directory under your devstack root:
git clone <repository_url> <devstack_root>/src/learning-paths-pluginInstall the Plugin
Inside the LMS shell, install the plugin by running:
pip install -e /edx/src/learning-paths-plugin/Run Migrations for the Plugin
After installing the plugin, run the database migrations for learning_paths:
./manage.py lms migrate learning_pathsRun Completion Aggregator Migrations
Ensure that the completion aggregator service is also up to date by running its migrations:
./manage.py lms migrate completion_aggregator
Once these steps are complete, the Learning Paths plugin should be successfully installed and ready to use.
Usage
After installing the plugin, a learning path can be created in the django admin panel {LMS_URL}/admin/learning_paths/learningpath/.
Change Log
Unreleased
0.5.0 - 2026-08-11
Added
Step order in the Django admin interface.
Changed
Order the Learning Path steps by their sequential order in the API, with the steps that have no explicit order at the end.
0.4.0 - 2026-06-12
Fixed
Mark course key admin widget as safe (Django 5.2 automatically escapes this code).
Do not evaluate DB queries when building the docs.
Removed
Django 4.2 support.
0.3.5 - 2025-09-01
Changed
Allow changing the Learning Path key in the Django admin interface.
Removed
Grading criteria from the Django admin interface.
Step weight and order from the Django admin interface.
0.3.4 - 2025-08-02
Added
Bulk unenrollment API.
Enrollment audit model that tracks the enrollment state transitions.
Allow specifying time commitment.
Allow duplicating Learning Paths in the Django admin interface.
Changed
The Learning Paths API includes start and end dates for its steps.
Return enrollment date in the API instead of a boolean.
Allow specifying any text for the duration.
Make the skill level optional.
0.3.3 - 2025-05-23
Changed
Changed line length from 80 to 120 characters.
0.3.2 - 2025-05-02
Added
Course key selection in admin forms.
Learning Path selection field in admin forms.
Enrollment status to the Learning Path list and retrieve APIs.
Invite-only functionality for Learning Paths.
Course enrollment API.
Changed
The Learning Path subtitle to TextField and made it optional.
The image URL field to ImageField.
The user field on the admin enrollments page to raw ID, to prevent the page from retrieving all users in the system.
Removed
The slug field from the Learning Path model.
The UUID compatibility layer from Learning Path keys.
0.3.1 - 2025-04-14
Added
API for listing and retrieving Learning Paths.
Fixed
Automatically create grading criteria for Learning Paths.
Changed
Replaced relative due dates with actual due dates from course runs.
0.3.0 - 2025-04-03
Changed
Replaced Learning Path UUID with LearningPathKey.
0.2.3 - 2025-03-31
Added
Enrollment API.
0.2.2 - 2024-12-05
Added
User grade API
0.2.1 - 2024-10-28
Added
Progress API
0.2.0 - 2024-01-23
Added
Database models
Django Admin interface
Metadata
Release files for learning-paths-plugin 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| learning_paths_plugin-0.5.0.tar.gz | 44.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| learning_paths_plugin-0.5.0-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 96.9 kB
Release files / learning_paths_plugin-0.5.0.tar.gz
| Download URL | learning_paths_plugin-0.5.0.tar.gz |
|---|---|
| Size | 44.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
fa3ce6aa6e5de63a032db2cd40b525f758f7768d8df0744e91fbb2e3c2715d30
|
|
BLAKE2b-256 checksum How to use checksums |
7e1e06d3afd18cb3987ee2f9427a1fd238d1846f7a04936d0f931277cc341871
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / learning_paths_plugin-0.5.0-py2.py3-none-any.whl
| Download URL | learning_paths_plugin-0.5.0-py2.py3-none-any.whl |
|---|---|
| Size | 52.0 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
23db11f43be1cf30887a6938982c3e269a4f958afa769d0c5d6958860a428d0d
|
|
BLAKE2b-256 checksum How to use checksums |
daeeb1a8d3e80fc771e968a0b39e22c48da8d523b8b13a9f1fb7ad54c0dd17d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for learning-paths-plugin 0.5.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.