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.2.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.2-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for ol_openedx_canvas_integration-0.5.2.tar.gz
Algorithm Hash digest
SHA256 15c086e99f7765419a67a1facd1db1565c02d588f75d121886dd3378bd790d9b
MD5 7c42cc9fc19477be0b4c8a8b7a34fd39
BLAKE2b-256 021be38e41f2400acd062ba35bcf42544b36466108e22094dbd4aea2bb0e7251

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ol_openedx_canvas_integration-0.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aa72864b5353243429b9e202444edec0a5102c4485344c8393b715e33c0448ac
MD5 1d2b93614dda44b8079bb9d83db6f268
BLAKE2b-256 30904f9d13cd96f7edb6b1601ea18a8c1c0d504152fa92dfff037932e7c6c280

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