Metadata-Version: 2.4
Name: learning-paths-plugin
Version: 0.3.5
Summary: Learning Paths plugin
Home-page: https://github.com/open-craft/learning-paths-plugin
Author: OpenCraft
Author-email: help@opencraft.com
Keywords: Python edx
Classifier: Development Status :: 3 - Alpha
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.11
License-File: LICENSE.txt
Requires-Dist: Django
Requires-Dist: django-model-utils
Requires-Dist: django-object-actions
Requires-Dist: djangorestframework
Requires-Dist: edx-django-utils
Requires-Dist: edx-opaque-keys
Requires-Dist: openedx-atlas
Requires-Dist: openedx-completion-aggregator
Requires-Dist: pillow
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

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 Not open source unless
otherwise noted.

Please see `LICENSE.txt <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:

   .. code-block:: bash

      git clone <repository_url> <devstack_root>/src/learning-paths-plugin

2. **Install the Plugin**

   Inside the LMS shell, install the plugin by running:

   .. code-block:: bash

      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`:

   .. code-block:: bash

      ./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:

   .. code-block:: bash

      ./manage.py lms migrate completion_aggregator

   .. warning::

      Please read the section about `synchronous vs asynchronous modes <https://github.com/open-craft/openedx-completion-aggregator/?tab=readme-ov-file#synchronous-vs-asynchronous-calculations>`_
      for completion aggregator before enabling this in a production environment. Running in synchronous mode can lead to an outage.


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
##########

..
   All enhancements and patches to learning_paths will be documented
   in this file.  It adheres to the structure of https://keepachangelog.com/ ,
   but in reStructuredText instead of Markdown (for ease of incorporation into
   Sphinx documentation and the PyPI description).

   This project adheres to Semantic Versioning (https://semver.org/).

.. There should always be an "Unreleased" section for changes pending release.

Unreleased
**********

*

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
