[Course Settings] Allow Admin to Set Default Settings for courses

It would be hugely helpful to district-level Canvas Admins to be able to modify and establish default course settings for course shells created for sections assigned to teacher users.

 

For example, if a teacher technology advisory committee, school principal, and/or tech department in the school or district determines that all courses published in Canvas for students and observers have settings that differ from the current defaults, then this requires a manual change to each course by the teacher and/or admin depending upon the district's user permissions.

e.g., setting grading schemes, or students rights to view, attach, etc.

Screen Shot 2016-02-23 at 10.53.02 AM.png

e.g., modifying default course navigation menu items to be viewable to students...

Screen Shot 2016-02-23 at 10.53.50 AM.png

 

I suggest that Canvas develop a feature that would allow an admin to simply set the course settings defaults prior to the creation of courses within subaccounts, manually or via SIS integration.

 

This feature could be available in one or more of the following locations of the Admin navigation menu:

(a) Courses

171597_Screen Shot 2016-02-23 at 11.10.22 AM.pngScreen Shot 2016-02-23 at 11.10.22 AM.png

(b) Add a New Course

171598_Screen Shot 2016-02-23 at 11.10.35 AM.pngScreen Shot 2016-02-23 at 11.10.35 AM.png

(c) Settings

171629_Screen Shot 2016-02-23 at 11.11.56 AM.pngScreen Shot 2016-02-23 at 11.11.56 AM.png

(d) Subaccounts

171631_Screen Shot 2016-02-23 at 11.27.37 AM.pngScreen Shot 2016-02-23 at 11.27.37 AM.png

71 Comments
tminerfarra
Community Novice

We need to be able ot set the default grading scheme system wide. And navigation bar too.  Thank you

mkollman
Community Participant

I have been supporting this change for as long as I have been an admin.  Canvas needs mover easy to use controls at the institution and global level to help standardize or fix issues rather than trying to handle everything at the course level by a "teacher" role user.

 

dtod
Community Contributor

This is a hack, but it will allow you to disable moving menu items on the Settings -> Navigation page:

(function($) {
    $.fn.changeElementType = function(newType) {
        var attrs = {};

        $.each(this[0].attributes, function(idx, attr) {
            attrs[attr.nodeName] = attr.nodeValue;
        });

        this.replaceWith(function() {
            return $("<" + newType + "/>", attrs).append($(this).contents());
        });
    }
})(jQuery);


function disableElement(elName){
	// change menu element to a div
	if ( $('#nav_enabled_list li:[aria-label="' + elName + '"]').length ){
		$('#nav_enabled_list li:[aria-label="' + elName + '"]').changeElementType("div");
		// get the style of the Home li
		var baseEl = document.querySelector("#nav_enabled_list li");
		var currstyle=document.defaultView.getComputedStyle(baseEl, "").cssText;
		// apply the style to the newly created div
		document.querySelector('#nav_enabled_list div[aria-label="' + elName + '"]').style.cssText = currstyle;
		// hide stuff we do not want to see on the new div
		//$('#nav_enabled_list div:[aria-label="' + elName + '"] .admin-links').hide();
		$('#nav_enabled_list div:[aria-label="' + elName + '"] .admin-links').html("<i class=\"icon-lock\" aria-hidden=\"true\" style=\"padding-left:8px;padding-right:8px;\"></i>");
		$('#nav_enabled_list div:[aria-label="' + elName + '"] .disabled_message').hide();
	}
	if ( $('#nav_disabled_list li:[aria-label="' + elName + '"]').length ){
		$('#nav_disabled_list li:[aria-label="' + elName + '"]').changeElementType("div");
		// get the style of the Home li
		var baseEl = document.querySelector("#nav_enabled_list li");
		var currstyle=document.defaultView.getComputedStyle(baseEl, "").cssText;
		// apply the style to the newly created div
		document.querySelector('#nav_disabled_list div[aria-label="' + elName + '"]').style.cssText = currstyle;
		// hide stuff we do not want to see on the new div
		// $('#nav_disabled_list div:[aria-label="' + elName + '"] .admin-links').hide();
		$('#nav_disabled_list div:[aria-label="' + elName + '"] .admin-links').html("<i class=\"icon-lock\" aria-hidden=\"true\" style=\"padding-left:8px;padding-right:8px;\"></i>");
		$('#nav_disabled_list div:[aria-label="' + elName + '"] .disabled_message').hide();
	}
}

 

You can call it as 

disableElement('Modules'); 

 

with some logic around that. In our system I have set it to trigger on certain course codes, sub-accounts, and roles, e.g. 

function disableMenuOrdering(){
	// only admins can rearrange the menu
	if ( /^\/courses\/[0-9]+\/settings$/.test(window.location.pathname) && 
		!( ENV.current_user_roles.indexOf('admin') > -1 || ENV.current_user_roles.indexOf('root_admin') > -1 ) 
		) {
		disableElement('Modules');
	}
}

 

berninghausen
Community Explorer

Being able to change certain course only settings on a global or sub-account level would make a clean roll out and continued to use much more straight forward. One case we have is using grade passback to the SIS. If one grade is shown in Canvas and something different (weighted maybe) is shown in the SIS, confusion starts.

clouviere1
Community Explorer

Has there been any update to this request? Just today, I had a question about default settings related to discussions (not allowing students to begin their own discussions) and I thought of the need for an admin panel that has course settings that would be enabled or disabled by default. This would be great to be able to set this without scripting. 

robert_machol
Community Member

Ditto.  This just came up today to help teachers with a default shell with the various menus turned off from student view. Students tend to focus on the wrong menu items and to many teachers can't seem to figure this out (despite the faculty meetings on it). Having variable default canvas course shell settings would be an easy fix.  

gpillsbury
Community Contributor

Isn't this feature request met by using the blueprint course functionality?  We create a minimal course template with various things checked/unchecked and use that to build shells.  Each term we reevaluate anything in the blueprint.  Or am I misunderstanding the request?

KristinL
Community Team
Community Team
Status changed to: New
 
KristinL
Community Team
Community Team
Status changed to: Added to Theme
 
nathanatkinson
Community Team
Community Team
Status changed to: New