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 = 30For Tutor installations, these values can also be managed through a custom tutor plugin.
2) Add course settings value
Open your course in Studio.
Navigate to “Advanced Settings”.
Enable other course settings by enabling ENABLE_OTHER_COURSE_SETTINGS feature flag in CMS
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
In Studio, create/navigate to a course and create some graded assignments/quizzes.
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
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 ol_openedx_canvas_integration-0.5.2.tar.gz.
File metadata
- Download URL: ol_openedx_canvas_integration-0.5.2.tar.gz
- Upload date:
- Size: 18.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15c086e99f7765419a67a1facd1db1565c02d588f75d121886dd3378bd790d9b
|
|
| MD5 |
7c42cc9fc19477be0b4c8a8b7a34fd39
|
|
| BLAKE2b-256 |
021be38e41f2400acd062ba35bcf42544b36466108e22094dbd4aea2bb0e7251
|
File details
Details for the file ol_openedx_canvas_integration-0.5.2-py3-none-any.whl.
File metadata
- Download URL: ol_openedx_canvas_integration-0.5.2-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa72864b5353243429b9e202444edec0a5102c4485344c8393b715e33c0448ac
|
|
| MD5 |
1d2b93614dda44b8079bb9d83db6f268
|
|
| BLAKE2b-256 |
30904f9d13cd96f7edb6b1601ea18a8c1c0d504152fa92dfff037932e7c6c280
|