Skip to main content

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 model
  • frontend/ 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tutor_contrib_delete_course-1.0.0.tar.gz (65.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl (75.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file tutor_contrib_delete_course-1.0.0.tar.gz.

File metadata

File hashes

Hashes for tutor_contrib_delete_course-1.0.0.tar.gz
Algorithm Hash digest
SHA256 de7c5d806ae70235d033702292641a184f2d120a763d7621050f746632468b10
MD5 759f056ae8c85a26a8cbdcb0a631f5e1
BLAKE2b-256 c0996371eff8eff2e6f42ee4ceb1e76c475d0903994d776705589f1d495691e7

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for tutor_contrib_delete_course-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fc5650f717af6e361f9c3b348448a797079fed4c8d702c77bf5ac14969b2a01c
MD5 45c8e9067f2bef7a49a27f8a1ddc05fd
BLAKE2b-256 b6e4e7da63c3835ae9d8dbbd0b2cf3d4dc71a1479c7bbd4b7b2811152a2a000f

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page