Open edX Auto Enroll
Open edX Auto Enroll is a Django plugin that enrolls newly registered users in courses selected from Django admin.
Features
Enable or disable automatic enrollment from Django admin.
Add one or more Open edX course keys from Django admin.
Choose the enrollment mode per course.
Automatically enroll users when the Open edX STUDENT_REGISTRATION_COMPLETED event is emitted.
Getting Started with Development
Please first see the Open edX documentation for guidance on Python development in Open edX plugin repositories.
Then follow the steps below to mount and install this plugin in a local Tutor-based Open edX instance:
# Clone the repository.
git clone git@github.com:Abstract-Tech/openedx-auto-enroll.git
# Mount the repository into Tutor.
tutor mounts add /path/to/openedx-plugins/openedx-auto-enroll
Tutor mounts the repository under /mnt/ in the Open edX containers. Install the plugin from inside the LMS container:
tutor dev exec lms bash
cd /mnt/openedx-auto-enroll
pip install -e .
Then run migrations from the Open edX platform directory:
cd ~/edx-platform/
./manage.py lms migrate
After installation, open Django admin and configure:
Auto enroll configuration: enable or disable automatic enrollment globally.
Auto enroll courses: add the course keys that new users should be enrolled in.
Useful development commands:
# Run tests locally inside this repository.
tox -e django42
# Build documentation.
make docs
# Re-run migrations after model changes.
tutor dev exec lms bash
cd ~/edx-platform/
./manage.py lms migrate
# Open an LMS shell when debugging enrollment behavior.
tutor dev exec lms bash
cd ~/edx-platform/
./manage.py lms shell
Installation
Install the package in the LMS environment and run migrations:
pip install openedx-auto-enroll
./manage.py lms migrate openedx_auto_enroll
Tutor Deployment
To install this plugin in a Tutor-managed Open edX instance, add it to Tutor’s OPENEDX_EXTRA_PIP_REQUIREMENTS configuration setting:
OPENEDX_EXTRA_PIP_REQUIREMENTS:
- git+https://github.com/Abstract-Tech/openedx-auto-enroll.git@X.Y.Z
Then rebuild/relaunch and run migrations:
tutor config save
tutor local launch
tutor local run lms ./manage.py lms migrate openedx_auto_enroll
For production environments, use the same extra pip requirement in your Tutor configuration, then rebuild the Open edX image and run migrations during deployment.
Configuration
In Django admin:
Open Auto enroll configuration and set enabled.
Open Auto enroll courses and add the course keys new users should be enrolled in.
Course keys should use the normal Open edX format, for example course-v1:edX+DemoX+Demo_Course.
How it Works
The plugin registers a handler for the Open edX STUDENT_REGISTRATION_COMPLETED event. When a new user completes registration, the handler checks the global admin switch, loads all enabled auto-enroll course rows, and enrolls the user in each selected course through Open edX’s CourseEnrollment.enroll API.
Change Log
0.1.0
Initial release.
Metadata
Release files for openedx-auto-enroll 0.1.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 | |
|---|---|---|---|
| openedx_auto_enroll-0.1.0.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openedx_auto_enroll-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.4 kB
Release files / openedx_auto_enroll-0.1.0.tar.gz
| Download URL | openedx_auto_enroll-0.1.0.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
061448cd002194d06f9a1b3f935539f2897a67536916bc14ba6d30b9fa5a4961
|
|
BLAKE2b-256 checksum How to use checksums |
0f52abbbb815d7feabd3d8988c29931538d3d5ada45974d0dd3131f25e6fdbc7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency logRelease files / openedx_auto_enroll-0.1.0-py3-none-any.whl
| Download URL | openedx_auto_enroll-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
968accf178abf2bbf6c99912ca67fa5d5acb29e18544a37aa1cfdc0e2fab1849
|
|
BLAKE2b-256 checksum How to use checksums |
ff88df2e1d8100df133dc86b146de67eef1708cbf5cdd42e52c503ca842b0ba3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 29, 2026.
Transparency log