Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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

  1. 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-plugin
  2. Install the Plugin

    Inside the LMS shell, install the plugin by running:

    pip install -e /edx/src/learning-paths-plugin/
  3. Run Migrations for the Plugin

    After installing the plugin, run the database migrations for learning_paths:

    ./manage.py lms migrate learning_paths
  4. Run 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.6.0 - 2026-10-22

Fixed

  • Process pending Learning Path enrollments when a user activates the account or changes the email address, instead of only when the account is created. Enrollments are no longer created for accounts that have not been activated.

  • Link all unclaimed enrollment allowed records to the user, including the inactive ones.

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.6.0rc1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for learning-paths-plugin 0.6.0rc1
File Size Uploaded Provenance Actions
learning_paths_plugin-0.6.0rc1.tar.gz 45.6 kB Without provenance Details for learning_paths_plugin-0.6.0rc1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for learning-paths-plugin 0.6.0rc1
File Interpreter ABI Platform Actions
learning_paths_plugin-0.6.0rc1-py2.py3-none-any.whl Python 2, Python 3 none any Details for learning_paths_plugin-0.6.0rc1-py2.py3-none-any.whl

Total release size: 98.1 kB

Release files / learning_paths_plugin-0.6.0rc1.tar.gz

Download URL learning_paths_plugin-0.6.0rc1.tar.gz
Size 45.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5d9971f85b24fa6e9e87ffa1fe54d8b2d20fe27a50077a9822db789a9ba8e165
BLAKE2b-256 checksum
How to use checksums
b4aad259770b634d028d856d9b3e443f1f59e2fa664366a95e90986adeb73a8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / learning_paths_plugin-0.6.0rc1-py2.py3-none-any.whl

Download URL learning_paths_plugin-0.6.0rc1-py2.py3-none-any.whl
Size 52.6 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
93f865325a895de4193d7bf85c756ff953b98fdcbad64feda6db957ea5e0d451
BLAKE2b-256 checksum
How to use checksums
6263b5daa2867979d2fb85c790fa4845401ebd6f2e7ca0af6f7b37c657e3a7dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for learning-paths-plugin 0.6.0rc1

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page