Skip to content

Latest commit

 

History

History
91 lines (61 loc) · 7.33 KB

File metadata and controls

91 lines (61 loc) · 7.33 KB

Canvas-Transfer-For-Todoist

All Contributors

not created by, affiliated with, or supported by Doist

Transferring assignments from your student Canvas account to your Todoist account couldn't be easier.

This project provides you with an easy way to transfer all of your assignments from a Canvas account into a Todoist account with appropraite due dates and assignment to auto-generated projects that match course names.

How-To

Easy Run

Easy run allows all configuration to be done inside of the program, avoiding the hassle of creating the config file directly. Just install the dependencies and follow the instructions on screen.

  • Obtain your API Keys for Todoist and Canvas
  • On Canvas desktop go to settings and click on New Access Token under Approved Integrations
  • On Todoist desktop go to settings and the API token will be listed under the Integrations Tab. You can also generate an application-specific token at https://developer.todoist.com/appconsole.html
  • Install required packages with pip install -r requirements.txt
  • Run python easy_run.py and follow up the prompts
  • A config.json file will be created with your selections so it can be run again in the future using the same keys and/or classes

Known Issues/Limitations

❗ Every teacher uses Canvas slightly differently. You agree that it is YOUR responsibility to review Canvas regularly to ensure you are staying current.

Due Date Updates: The script will update due dates on tasks when the following conditions are met:

  1. The assignment in Canvas DOES have a due date
  2. The task in Todoist either does NOT have a due date, OR it has a due date that is LATER (in the future from) the Canvas Due Date..

It will not REMOVE adue dates from Todoist (even if they are removed in Canvas), so you can set an artifical 'due date' in Todoist for assignments with no due date. It will also not update due dates if the due date is set earier than the one in Canvas (allowing you to artifically 'move' due dates earlier, but not later)

Name or Assignment Changes: The script will not modify or remove Todist tasks retroactively, so if a teacher deletes or modifies an assignment, it will not be removed from Todoist. In the case of a name change, a new task would be created in Todoist with the new assignment name.

Graded Assignments: This script ignores any assignments once they are graded.

⚠️ This means that if a teacher enters "0" the assignment will be ignored, even if you have additional opportunities to submit it. Thus, it is recommended that you do not remove a task from Todoist until you have submitted it.

Submissions: This script assumes assignments with submissions do not need to be added.

⚡ You must keep track of any re-submissions or re-grades seperately; this script does not have logic to handle them as they show up as already "submitted" in the API.

Duplicate tasks: Tasks are tracked based on the the class name and assigment title within Canvas. The script does not delete or remove tasks. If a teacher renames an assignment, you will end up with two assignments in Todoist (one under the old name, one under the new name) - only the new one will be kept up to date with any date changes.

☝️ Every teacher uses Canvas differently - there are several options available to handle different things teachers do in Canvas (such as creating ungraded/unsubmittable assignments, locked assignments, etc).

I recommend synching all assignments at the beginning of the semester, then adjusting your settings to exclude ungraded and null assignments once they are fully added.

FAQ

Q: Why are Priority numbers different?

A: The Todoist API Priority numbers go from 1 (Default) to 4 (Very Urgent), which is the opposite as the UI (https://developer.todoist.com/rest/v2/#create-a-new-task)

Q: What are null/unsubmittable assignments?

A: Teachers can set submission method for an assignment to "none" or "not graded". This filters out those assignments (since you can't actually submit them)

Q: What are locked assignments?

A: Teachers can lock assignments so they cannot be viewed or done. These locks can be because a module is not unlocked, or they can be set to unlock at a certain date. If the setting to not sync locked assignments is enabled, any assignment which will not be unlocked within the next 24 hours will not sync.

Contributing & Troubleshooting

If you encounter any issues, please open an Issue with the appropriate data - I use this regularly for my classes to sync to Todoist (which is my work System of Record), please open an issue for any problems you encounter or questions you have!

Contributors

Thanks to all the below for their contributions!

Scott Quach
Scott Quach

💻
Jesse
Jesse

💻 🐛
Andrei Cozma
Andrei Cozma

🐛
Nassuel N. Valera
Nassuel N. Valera

🐛
Luke Weiler
Luke Weiler

🐛
Caleb Stanford
Caleb Stanford

🤔 🧑‍🏫