cancel
Showing results for 
Search instead for 
Did you mean: 

Allow Admin to Set Default Course Settings for courses

Allow Admin to Set Default Course Settings for courses

(8)
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

64 Comments
Community Member

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

Learner II

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.

 

Adventurer

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');
	}
}

 

Surveyor

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.