Skip to main content

An Open edX plugin to add canvas integration support

Project description

A django app plugin to add Canvas integration to Open edX.

NOTE:

We had to make some changes to edx-platform itself in order to add the “Canvas” tab to the instructor dashboard.

The edx-platform branch/tag you’re using must include one of the below commit for ol-openedx-canvas-integration plugin to work properly:

For “Sumac” or more recent release of edX platform, you should cherry-pick below commit:

TBA - Will be added when we merge the PR in edx-platform

For “Quince” to “Redwood” release of edX platform, you should cherry-pick below commit:

https://github.com/mitodl/edx-platform/commit/7a2edd5d29ead6845cb33d2001746207cf696383

For “Nutmeg” to “Palm” release of edX platform, you should cherry-pick below commit:

For any release prior to “Nutmeg” you should cherry-pick below commit:

Version Compatibility

For “Sumac” or more recent release of edX platform

Use 0.4.0 or a above version of this plugin

For “Quince” to “Redwood” release of edX platform

Use 0.3.0 or a above version of this plugin

For “Nutmeg” to “Palm” release of edX platform

Use 0.2.4 or a above version of this plugin

For releases prior to “Nutmeg”

Use 0.1.1 version of this plugin

Installation

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

Installation required in:

  • LMS

  • CMS

Configuration

1) edx-platform configuration

  • Add the following configuration values to the config file in Open edX. For any release after Juniper, that config file is /edx/etc/lms.yml. If you’re using private.py, add these values to lms/envs/private.py. These should be added to the top level. Ask a fellow developer or devops for these values.

    CANVAS_ACCESS_TOKEN: <some access token value>
    CANVAS_BASE_URL: <the base URL where Canvas is running>
  • Add the following configuration to you CMS settings (depending on you deployment method). These values defined in the LMS settings and are used in tasks.py. Since Celery’s auto-discovery imports this automatically in the CMS worker, these values need to be defined in the CMS settings to avoid Celery worker failure.

    BULK_EMAIL_MAX_RETRIES = 5
    BULK_EMAIL_DEFAULT_RETRY_DELAY = 30
  • For Tutor installations, these values can also be managed through a custom tutor plugin.

2) Add course settings value

  1. Open your course in Studio.

  2. Navigate to “Advanced Settings”.

  3. Enable other course settings by enabling ENABLE_OTHER_COURSE_SETTINGS feature flag in CMS

  4. Open course advanced settings in Open edX CMS, Add a dictionary in {"canvas_id": <canvas_course_id>}. The canvas_course_id should be the id of a course that exists on Canvas. (NOTE: Canvas tab would only be visible if this value is set)

How To Use

Manual Operations

  1. In Studio, create/navigate to a course and create some graded assignments/quizzes.

  2. In LMS, open the above course, navigate to the “Instructor” tab, and make sure that you see can see a “Canvas” tab.

Some of the functionality available in this tab:

  • List enrollments on Canvas - Show all enrollments for the course on Canvas.

  • Merge enrollment list using Canvas - Enroll all the users that are present on edX. For the users that don’t exist on edX, a CourseEnrollmentAllowed object will be created.

  • Overload enrollment list using Canvas - Ensure that enrollment records in edX match the enrollments in Canvas (i.e.: create any enrollments that exist in Canvas but don’t exist in edX, and delete enrollments that exist in edX but not in Canvas)

  • Push all MITx grades to Canvas - Ensure that Canvas has the equivalent assignments/quizzes for the course, and create/update the user grades for those assignments/quizzes in Canvas (The assignments must have a Published status on Canvas)

  • List Canvas assignments - Show a dropdown of all the assignments that are present on Canvas, and upon selecting an assignment, show a list of grades.

Background Operations

When a Canvas course is linked by adding the canvas_id the Advanced Settings of a course, the following background operations are performed based on user events.

1. Automatic Syncing of Assignments

Whenever the course is Published from the Studio, the graded subsections of the Open edX Course are automatically synced to the linked Canvas course. This includes

  • adding new assignments when new graded subsections are added

  • updating the existing assignments

  • removing any assignment that might exist, when subsections are removed

2. Automatic Syncing of Grades

Whenever a learner interacts with a graded question in Open edX, the latest grades are automatically posted to Canvas, if it’s a part of a synced assignment.

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_canvas_integration-0.5.3.tar.gz (18.1 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_canvas_integration-0.5.3-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file ol_openedx_canvas_integration-0.5.3.tar.gz.

File metadata

File hashes

Hashes for ol_openedx_canvas_integration-0.5.3.tar.gz
Algorithm Hash digest
SHA256 1265c657d18d62e8ec47fd8f34900aa635cf759c729de7dcf5f01e693034fa48
MD5 5dc0feb031ae6e1cbb169326640ca075
BLAKE2b-256 2d48491b7e0276bc2d6f4fc969cea1ce80d1609db99ad390138bd3dfe1d533a6

See more details on using hashes here.

File details

Details for the file ol_openedx_canvas_integration-0.5.3-py3-none-any.whl.

File metadata

File hashes

Hashes for ol_openedx_canvas_integration-0.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b1a7ff505090b3a8e02a2347f668ccdf4fae235ec9cc3aadfb6f5bb3491300c5
MD5 a3c9a416e910d2fed61e4e8e8918a96b
BLAKE2b-256 e2fc9b27c6d84de61840390f6b207d2de90b9fad7403b94d3c936b38a1da5949

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