Skip to main content

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)

Source distribution for openedx-auto-enroll 0.1.0
File Size Uploaded
openedx_auto_enroll-0.1.0.tar.gz 12.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for openedx-auto-enroll 0.1.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

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