Your Community is getting an upgrade!
Read about our partnership with Higher Logic and how we will build the next generation of the Instructure Community.
Found this content helpful? Log in or sign up to leave a like!
Hello! My university has self-paced courses where each student begins at different times and completes all their coursework within a set timeframe. Instructors monitor their students’ progress throughout the course to ensure they’re staying on top of their assignments and achieving their unique personal learning goals. Instructors keep track of their communication check-in’s and specifics about each student’s needs by enabling the Notes Column in Gradebook, this feature is AWESOME. This is essential in really large classes, so instructors can maintain strong personalization and care for each student.
My question is - Is it possible to add in multiple Notes Columns into the Gradebook? (sometimes the Notes get pretty long and it would be helpful to have another field)
And, are there any other features like this (for tracking student progress at an individual level) that are visible from Gradebook or another overview page?
Thank you so much for your help and suggestions!
Solved! Go to Solution.
To answer the question about multiple notes columns, the answer is yes. However, you can't do it through the website. You can do this through the Canvas API. If you've not used APIs before, I would suggest asking the admin to do this or your customer success manager. If you want to use the API yourself and haven't done anything like this, the following steps will get you what you want.
1. Get your API Token.
Add a new access token by following the steps here: https://community.canvaslms.com/t5/Instructor-Guide/How-do-I-manage-API-access-tokens-as-an-instruct...
2. Python
Lots of ways to access the API, but I think python is simple. Download python. In the terminal or the command line run
pip install canvasapi
3. Edit this and run
Create a new python file and copy & paste the following code. This will add an extra column to your grade book. You need to change the URL. You need to replace "TOKEN" with whatever your token is. You need to replace 1234 with the course id. You can find your course id in your address bar: https://schoolname.instructure.com/courses/1234/gradebook
from canvasapi import Canvas
API_KEY = "TOKEN"
API_URL = "https://schoolname.instructure.com/"
canvas = Canvas(API_URL,API_KEY)
my_course = canvas.get_course(1234)
my_column = {
"title": "Test column",
"position": 1,
"read_only": False
}
my_course.create_custom_column(column = my_column)
Here's what it looks like when it's complete:
To answer the question about multiple notes columns, the answer is yes. However, you can't do it through the website. You can do this through the Canvas API. If you've not used APIs before, I would suggest asking the admin to do this or your customer success manager. If you want to use the API yourself and haven't done anything like this, the following steps will get you what you want.
1. Get your API Token.
Add a new access token by following the steps here: https://community.canvaslms.com/t5/Instructor-Guide/How-do-I-manage-API-access-tokens-as-an-instruct...
2. Python
Lots of ways to access the API, but I think python is simple. Download python. In the terminal or the command line run
pip install canvasapi
3. Edit this and run
Create a new python file and copy & paste the following code. This will add an extra column to your grade book. You need to change the URL. You need to replace "TOKEN" with whatever your token is. You need to replace 1234 with the course id. You can find your course id in your address bar: https://schoolname.instructure.com/courses/1234/gradebook
from canvasapi import Canvas
API_KEY = "TOKEN"
API_URL = "https://schoolname.instructure.com/"
canvas = Canvas(API_URL,API_KEY)
my_course = canvas.get_course(1234)
my_column = {
"title": "Test column",
"position": 1,
"read_only": False
}
my_course.create_custom_column(column = my_column)
Here's what it looks like when it's complete:
@petern Oh my goodness, you are amazing!! I have never used the API before for editing features, only for looking through content, and I didn’t even realize this was possible. Thank you SO much for your incredibly helpful and detailed response!!!
Hi @petern, this worked perfectly! I was able to add in each of the check-point columns into the Gradebook, and it looks awesome! I really appreciate all your help 😊
During testing, I wasn’t able to figure out how to update or delete columns once I created them. I tested a few versions out in Beta (so it will reset), but was curious if you knew the functions for updating the name or deleting a column (I couldn’t find it listed in the Canvas API class reference documentation). Thanks so much again!!
Hi @AshlyPadgett . Just figured out this one. You have to call the method on the new column that's been created. The following isn't the most elegant code, but I think it is quite readable. Just put this after the my_course line in the code above:
my_columns = my_course.get_custom_columns()
updated_column_details = {
"title": "Changed title"
}
## Update the column called Test column
for column in my_columns:
if column.title == "Test column":
column.update_custom_column(column=updated_column_details)
break
## Delete the column called Another test column
for column in my_columns:
if column.title == "Another test column":
column.delete()
break
Thank you so much @petern!!! I love the option to update directly based on the title, thank you for finding the solution and sharing the code! 😊 I really appreciate you!!
To interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign InTo interact with Panda Bot, our automated chatbot, you need to sign up or log in:
Sign In