Open edX plugin for admin-only course deletion in Studio
Project description
Tutor Contrib Delete Course
Standalone Open edX plugin for admin-only course deletion from Studio.
Structure
backend/Django app (delete_course_plugin) exposing API + admin modelfrontend/reusable Authoring MFE widget package (@openedx/frontend-component-delete-course)tutor/Tutor plugin that injects backend/frontend into Open edX and Authoring MFE builds
Backend API
POST /delete_course_plugin/v1/courses/<course_key>/delete/
Body:
{
"reason": "optional"
}
Admin model
DeletedCourseRecord- Admin label:
Deleted course records
Installation
Install the Tutor plugin package:
pip install tutor-contrib-delete-course
Enable plugin:
tutor plugins enable delete-course
Rebuild images so backend + authoring frontend package are injected:
tutor images build openedx mfe
Apply migrations in CMS:
tutor local run cms ./manage.py cms migrate delete_course_plugin
Restart services:
tutor local restart cms lms mfe
Development
For local development from this repo root:
git clone git@github.com:Abstract-Tech/tutor-contrib-delete-course.git
cd tutor-contrib-delete-course
pip install -e .
tutor plugins enable delete-course
tutor images build openedx-dev mfe
tutor mounts add cms:/path/to/tutor-contrib-delete-course/backend:/openedx/delete-course-plugin-backend
Local mounted MFE
If you are using a locally mounted mfe/frontend-app-authoring, local env.config.jsx can still be used for dev.
For staging/production, use the Tutor plugin integration in tutor/ instead of manual env config edits.
TODO
- Add a soft-delete/archive backup flow for deleted courses so staff/admin can restore a deleted course within a configurable retention window (for example, 30 days), after which the course is permanently deleted.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tutor_contrib_delete_course-1.0.0.tar.gz.
File metadata
- Download URL: tutor_contrib_delete_course-1.0.0.tar.gz
- Upload date:
- Size: 65.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de7c5d806ae70235d033702292641a184f2d120a763d7621050f746632468b10
|
|
| MD5 |
759f056ae8c85a26a8cbdcb0a631f5e1
|
|
| BLAKE2b-256 |
c0996371eff8eff2e6f42ee4ceb1e76c475d0903994d776705589f1d495691e7
|
Provenance
The following attestation bundles were made for tutor_contrib_delete_course-1.0.0.tar.gz:
Publisher:
publish-pypi.yml on Abstract-Tech/tutor-contrib-delete-course
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tutor_contrib_delete_course-1.0.0.tar.gz -
Subject digest:
de7c5d806ae70235d033702292641a184f2d120a763d7621050f746632468b10 - Sigstore transparency entry: 1925918977
- Sigstore integration time:
-
Permalink:
Abstract-Tech/tutor-contrib-delete-course@0f6ae623307f547a66f56537d947e124afd8f0be -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Abstract-Tech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@0f6ae623307f547a66f56537d947e124afd8f0be -
Trigger Event:
push
-
Statement type:
File details
Details for the file tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl.
File metadata
- Download URL: tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl
- Upload date:
- Size: 75.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc5650f717af6e361f9c3b348448a797079fed4c8d702c77bf5ac14969b2a01c
|
|
| MD5 |
45c8e9067f2bef7a49a27f8a1ddc05fd
|
|
| BLAKE2b-256 |
b6e4e7da63c3835ae9d8dbbd0b2cf3d4dc71a1479c7bbd4b7b2811152a2a000f
|
Provenance
The following attestation bundles were made for tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl:
Publisher:
publish-pypi.yml on Abstract-Tech/tutor-contrib-delete-course
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl -
Subject digest:
fc5650f717af6e361f9c3b348448a797079fed4c8d702c77bf5ac14969b2a01c - Sigstore transparency entry: 1925919186
- Sigstore integration time:
-
Permalink:
Abstract-Tech/tutor-contrib-delete-course@0f6ae623307f547a66f56537d947e124afd8f0be -
Branch / Tag:
refs/tags/v1.0.0 - Owner: https://github.com/Abstract-Tech
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@0f6ae623307f547a66f56537d947e124afd8f0be -
Trigger Event:
push
-
Statement type: