Skip to main content

An Open edX plugin to sync course changes to its reruns.

Project description

OL Open edX Course Sync

An Open edX plugin to sync course changes to its reruns.

Version Compatibility

It supports Open edX releases from Sumac and onwards.

Installing The Plugin

For detailed installation instructions, please refer to the plugin installation guide.

Installation required in:

  • CMS (for course sync functionality)

  • LMS (for problem attempts reset and rescore functionality)

Configuration

CMS Configuration

  • Add a setting OL_OPENEDX_COURSE_SYNC_SERVICE_WORKER_USERNAME for the service worker and all the sync operations will be done on behalf of this user.

    • For Tutor, you can run:

      tutor config save --set OL_OPENEDX_COURSE_SYNC_SERVICE_WORKER_USERNAME={USERNAME}
    • If you have a private.py for the CMS settings, you can add it to cms/envs/private.py.

Usage

Course Sync (CMS)

  • Install the plugin and run the migrations in the CMS.

  • Add the parent/source organization in the CMS admin model CourseSyncOrganization.
    • Course sync will only work for this organization. It will treat all the courses under this organization as parent/source courses.

  • The plugin will automatically add course re-runs created from the CMS as the child courses.
    • The organization can be different for the reruns.

  • Target/rerun courses can be managed in the CMS admin model CourseSyncMapping.

  • Now, any changes made in the source course will be synced to the target courses.

Problem Actions (LMS)

The plugin provides a management command to reset learner attempts or rescore problems across the source course and all its synced target courses.

Command: sync_problem_actions

Syntax:

python manage.py lms sync_problem_actions <action> <source_course_key> <problem_id> [OPTIONS]

Actions:

  • reset_attempts: Resets learner attempts for a problem

  • rescore: Rescores learners for a problem

Options:

  • --username USERNAME: Username to run the task as (default: ‘courses_service_worker’)

  • --only-if-higher / --no-only-if-higher: Whether to rescore only if the new score is higher (default: True)

Examples:

Reset attempts for a problem across all synced courses:

python manage.py lms sync_problem_actions reset_attempts \
    "course-v1:ORG+COURSE+RUN" \
    "block-v1:ORG+COURSE+RUN+type@problem+block@abc123" \
    --username courses_service_worker

Rescore a problem for all learners across all synced courses:

python manage.py lms sync_problem_actions rescore \
    "course-v1:ORG+COURSE+RUN" \
    "block-v1:ORG+COURSE+RUN+type@problem+block@abc123" \
    --username courses_service_worker \
    --only-if-higher

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

ol_openedx_course_sync-1.0.0.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

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

ol_openedx_course_sync-1.0.0-py3-none-any.whl (18.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ol_openedx_course_sync-1.0.0.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for ol_openedx_course_sync-1.0.0.tar.gz
Algorithm Hash digest
SHA256 aa5fb3a46f8279a9aa36ed6e487b77059a17ec69715c24cd44d56da1e46994b2
MD5 813f8a5adda5d78deb90754147919041
BLAKE2b-256 8381d3bb5ea36ca904dd52434e914996c7b137dc384866068c179cc729d0d886

See more details on using hashes here.

File details

Details for the file ol_openedx_course_sync-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ol_openedx_course_sync-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a76927c986e2ecd4b01ae7d55bbeffd34bd277be839b69de5be346b0aa035d3e
MD5 5c249fab57abcc105d34290a7ffb4896
BLAKE2b-256 78efbe584328b1239906bf7ae7180111931ef263b9d38c2f8a540a47f664e497

See more details on using hashes here.

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