Finding Rubrics


When a teacher wants to add a rubric to an assignment, they currently have to search through all of their courses to find the right one. This may require them to scroll down a long list before they find the right course. While it is helpful that rubrics are available to use from other courses without importing them, it would be more efficient to have two options on a menu or tabs:

1) Rubrics from this course (Default view)

2) Rubrics from other courses

This would allow teachers to add rubrics from the most likely place and also allow them to search through their other courses if they wanted.

Community Coach
Community Coach

I like this idea.  Maybe rubrics could be automatically added to some sort of instructor-based "library" when they are created in a course (from the rubrics menu, or just added directly to an assignments).  The instructor's rubric library could then be available when adding to any other assignment (in a different course or not).  Of course this adds come complexity to code, but It would make instructor's lives much easier!

Community Champion

A quick look, which is always subject to change when you look into it further, suggests that this is something that could be done through a browser user script or perhaps in the global custom JavaScript file if it was a big enough problem.

I'm not saying the idea is without merit, I don't like having to scroll myself, I'm just sharing what what I told  @kona ‌ when she asked me about the original question. It's not super-simple as the content is loaded dynamically, so you have to wait for it to load before you sort it. Beyond that, it shouldn't take too much (famous last words) to move the current course to the top.

Again, never say something is simple when dealing with Canvas. What appears simple often turns out to be complicated to impossible, but initial research suggests it might be possible.

Community Champion

This is another good example of a use-case for Global Search, and hopefully Rubrics will be included as yet another body of content/data that can be searched by course / by user etc.

And, yes, Global Search is coming!

Khaki 2017: Priorities & Related Ideas 

Community Champion

I was in a different group during Khaki, but do you really think Global Search will get down to the level of a dialog box? I think that's a much bigger programming adventure than what they allotted for it. And popping up the results of a search in a dialog box while you're already in a dialog box may not be the best user experience.

Community Champion

We actually talked about this quite a lot; apparently the real distinction is between what is in the database itself (and I suspect rubrics fall into that category, which is good) as opposed to uploaded documents (but they are also keen on making those part of search as well if they can).

What we focused on what a search system that would allow people to limit search using something like the parameters you see in Gmail and other searches, so that if you are searching the content contained in quiz questions (every time I have asked a question containing "Hubble"), then you could have a tag like type:quiz, and a search in rubrics would be type:rubric, etc.

And you could also limit to a single course, to a single term, to a single user, etc.

I'm looking forward to the discussions that will ensue, but search seems to me like an awesome opportunity, and especially for content that is actually sitting in the Instructure databases, it really is feasible. Apparently searching attached documents is the bigger challenge, but would also be of enormous value.

Community Champion

Okay, moving past it being searchable, how is that helpful for this request? I'm having trouble envisioning how search would be an improvement here and doing a really good job of seeing it as more cumbersome than it currently is and if the current course is listed first, then it's going to be relatively easy for me to find what I want. But that's me -- I just have a few rubrics in each course.

Maybe I'm basing that off of other search engines where you get a title and perhaps 1 or 2 lines of the content and thinking that's not going to be as helpful for what  @tyler_mckell  was asking about. It might be okay if you're pulling in rubrics from unrelated courses and you don't remember where it was or when it was and you just know that it contained a certain phrase.

Search is not the end-all of data organization. It's important, but it doesn't magically make the other problems disappear. As evidenced by the search features here in the Community, there is a lot of content out there that no one ever finds because they're looking for the wrong word or they spell it wrong (or the person creating the content spelled it wrong).

Another problem with the Find Rubric is that the term isn't listed and it uses the short course code. This is what I see.


Which Math 113 is that? It's not the current one. And there are a bunch of others below that. As I mouse through it, no where does it tell me what term the course is from -- not even in the hyperlink and not as you mouse over it as a title. Bad accessibility.

Search isn't going to fix this.

Community Champion

That's where I hope we can talk with people who have extensive stuff to find out IF search can help to solve a problem. The more users and use-cases we can assemble, the better. Even just in the discussion we had at Khaki, lots of possibilities came up that I had never thought of myself. 

So, if we find out that rubrics ARE in the database and thus prime candidates for searching (which I suspect is what we will learn), then we can find out from users of rubrics if search is going to help or not, and if search is not going to help, then what would...

One of the things that came up from an administrative point of view is being able to search on language related to objectives, standards, competencies, skills, etc. so that at an institutional level it will be possible to find out where things are happening in different classes. Especially if there is a standardized vocabulary for objectives, standards, competencies, etc., then you might expect to find that kind of thing in rubrics.

Or not? I don't know. I'm not a rubric user. But it seems possible...?

Community Champion

I took a little time last night and hobbled together a script. I see such possibility for it that I almost don't know where to go - so I'm not ready to release it yet.

Here is what it does, with some questions about where that should head.

  • Moves the current course to the top
  • Looks up a person's courses and sets the title on the hyperlink to be the full name of the course
  • Adds the term name to the rubric count line. Configurable to be in front or behind or completely replace the rubric count.

Canvas Way


Proposed Way



  • What about sorting? Right now, the only course that is sorted is the current one and it's moved to the top. But we could add sorting by the term or by the course name. An issue to consider that not all courses have terms. This may be an artifact of my being an admin and listed as a teacher in a bunch of training (non-teaching) courses. I don't know what other people are seeing.
  • How important is it that every course have the title and the term? The "Outdated Canvas Instructor Training" did not come up in the list of my courses, so there was information to add to it. Is it worth spending the extra cycles to look up things like that or just leave them as they are?
  • Do you want to hide courses that are done? If so, how much of a delay (as soon as they're done or after 180 days or ???) or is it just a Boolean toggle?
  • Is the list paginated? Many long lists in Canvas are paginated at 50 items. If it's paginated, then I've got to add extra complexity to the code.
  • Where else -- besides Assignments -- does this need added? I can probably track some of it down, but if someone knows it will save me some time (help me out as I help you out -- not quite the golden rule)


I had to add two mutation observers to get this. The dialog box that contains the list of rubrics isn't available until the person clicks the "Find a rubric" button and then the content is added later as the AJAX call returns its data. The first observer waits for the dialog to be added to the body and the second observer waits for content to be added to the list of contexts (the left panel). If pagination occurs, then I may need to leave that second observer running rather than disconnecting it.

I've got to head out right now, but I hope this gives people something to think about and provide guidance about where it should go.

Community Champion

That is SO COOL. 🙂

Coach Emeritus

 @James ‌, here are my responses...

  • What about sorting? I vote for alphabetical sorting, not term sorting.
  • How important is it that every course have the title and the term? I'm not sure if I understand your question. I really like the title and the term, yet, if there isn't a term to go with something then it's fine that it doesn't have one. So leave things as they are?
  • Do you want to hide courses that are done? NO, there's a good chance those are the courses I'm trying to get into to get a rubric from!
  • Is the list paginated? Not sure I understand the question. Are you asking about going ahead and writing the code to paginate or not?
  • Where else -- besides Assignments -- does this need added? Discussions, Quizzes. I can't think of anywhere else that brings up rubrics like this.
Community Champion

Wow I love this, I would only use the current course feature quite honestly but I'm with Kona on the answers.  Alphabetical sorting works best for us (but we utilize the term in the naming scheme) so others may prefer term.

Definitely don't hide past courses, if we are looking to pull in a rubric from a different course, it usually is a past term course.

Discussions are important to add this to, quizzes in the future but we don't utilize rubrics yet here.

Anything that would get the current term rubrics to pop up I'm all for :smileygrin:

- Melanie

Community Champion

Kona's answers are on point. I concur completely. I can only add that I will install this as soon as it gets released. Smiley Happy Thanks, James!

New Member

 @James ‌, your work is very impressive! Thanks for taking the time to explore the idea more and dive into the technical side of things. I don't understand specifics of the scripting that would need to be done on the back end. My main focus is the user experience and what is most efficient for the course instructor. Your script would be a major improvement to the current layout. Having the course listed at the top would give the teacher quick access to the most likely place to find their rubric. The course details also are an important consideration. Any additional information such as the semester, term, or year would be helpful. 


I would agree that an additional search function would not simplify the problem. The average teacher is not likely going to remember what they named their rubric. It would be easier to find a rubric within a specific course. The search function would also be worthless if some course details are not available. When courses have the same name, it is a guessing game to try to figure out which course is which. 

I agree with how  @kona ‌ responded to your questions with a couple of additions: 

Do you want to hide courses that are done? A Boolean toggle to hide “Old Courses” would be helpful because this list could be long and repetitive for many instructors. Most instructors will want to pull rubrics from their current course or last term/years courses. I imagine it is rare when they want to dive back into the archives beyond that. I would define old as more than 365 days old at set the default to hide these courses.

Is the list paginated? For heavy users and those that have been with Canvas for many years, pagination seems like it would be necessary. Hiding the old courses could eliminate the need to have it in the default view. I also can't stand when I see multiple places to scroll within a single window. Holy Scrolly that is a lot of scroll bars, Batman! Pages would be better.229623_pastedImage_5.png

Instructure Alumni
Instructure Alumni

 @James ‌, this will be a great Canvancement!  I agree with the responses above with one suggestion... How about sorting alphabetically, but grouped by terms? If there are no terms used, then just alpha sort.

For example:

Communications 101: current term

Math 113: current term

Sociology 130: current term


Communications 101: Fall 2016

Math 113: Fall 2016

Sociology 130: Fall 2016


Communications 101: Summer 2016

Math 113: Summer 2016

Sociology 130: Summer 2016

If instructors are more likely to be looking for rubrics from recent terms, this would minimize scrolling as the course list becomes longer over time. Especially if you are looking for a rubric in a sociology or zoology course.

Community Champion

Pagination involves the way information is delivered on the backend from Canvas to the web browser. When there are more than 50 items, it's typical for Canvas to batch deliver part of it and then load the rest in the background. That way the user isn't waiting around for the entire list to load. I'm not talking about adding pagination to the interface, that would complicate it more.

That's also part of why I was asking about hiding old courses -- to make it easier to use. If someone wanted to hide the old courses, but then needed it for some reason, they could temporarily disable the script.

I only had 30 courses with rubrics, so I could not tell if there was pagination happening. My alternative is to go into Beta and add myself to a bunch of courses as the teacher and then see if pagination occurs. I was hoping someone already had more than 50 courses and could tell if the whole list was immediately available or if it loaded more as you scrolled down.

This may turn into a release 1 of the basic functionality and then at some point down the line I'll look at adding more features. I'm pressed for time in my classes right now, have a couple of other projects in the wind after coming back from Khaki, and don't have a lot of development space open. It's my need to deliver awesome at the first go round, but I have to keep reminding myself that something is often better than nothing.

The scripts are fairly easy to use -- once you install it, you kind of forget it's there until you have to do it on a machine where it's not installed. I may be biased, but some of the people chiming in here have used them and will hopefully attest. You might look at the top of‌ for the quick install. This would be similar.

Community Contributor

Love this thread, thank you all. Concur with Kona's answers too.

Community Champion

The deal with the terms is that it's there for some and not for others. Do you think it would be best to move the indeTERMinable courses (courses where a term can't be determined) to the bottom?

New Member

A concern might be that a current course with no term could get moved to the bottom. The term "term" does have different meaning depending on your organization. What about using a course start date instead of term? 

Community Champion

I thought of sorting by course date, but there could be too many starting dates for the same term as our faculty may decide to open up one of their Spring courses a week early, but it's still a spring course. When they go to find it in a later semester, they're not going to think "this is first because it was opened a week early", they're going to wonder why it's not alphabetical -- if they give it any thought at all.

I am not going to get into the term means different things to different people issue. I have to program it according to the data structure provided by Canvas and use their definition of term.

Community Champion

We need to think about the account and sub-account levels as well.  What I would really like is to add a folder system to the rubric area and just treat each object as a file, letting me sort my objects in what would be a meaningful way to me or my department/campus.