--- loncom/interface/spreadsheet/lonspreadsheet.pm 2013/08/09 23:05:18 1.61.6.2 +++ loncom/interface/spreadsheet/lonspreadsheet.pm 2020/08/10 19:28:21 1.66 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.61.6.2 2013/08/09 23:05:18 raeburn Exp $ +# $Id: lonspreadsheet.pm,v 1.66 2020/08/10 19:28:21 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -241,6 +241,28 @@ sub handler { } # + # Check if display of course gradebook is blocked + # + + if ($env{'request.course.id'}) { + my $cdom = $env{'course.'.$env{'request.course.id'}.'.domain'}; + my $cnum = $env{'course.'.$env{'request.course.id'}.'.num'}; + my ($blocked,$blocktext) = + &Apache::loncommon::blocking_status('grades',$cnum,$cdom); + if ($blocked) { + my $checkrole = "cm./$cdom/$cnum"; + if ($env{'request.course.sec'} ne '') { + $checkrole .= "/$env{'request.course.sec'}"; + } + unless ((&Apache::lonnet::allowed('evb',undef,undef,$checkrole)) && + ($env{'request.role'} !~ m{^st\./$cdom/$cnum})) { + &Apache::lonquickgrades::grades_blocked($r,$blocktext,'spreadsheet'); + return OK; + } + } + } + + # # Do not allow users without vgr or mgr priv to continue unless # grading type is set to spreadsheet. # @@ -418,9 +440,12 @@ ENDSCRIPT bug => 'Spreadsheet'}); $r->print(&Apache::loncommon::start_page('Grades Spreadsheet',$js). &Apache::lonhtmlcommon::breadcrumbs('Spreadsheet', - 'Spreadsheet_About'). - &Apache::lonhtmlcommon::coursepreflink(&mt('Grade display settings'), - 'grading')); + 'Spreadsheet_About')); + + # + # Tabs + # + &Apache::lonquickgrades::startGradeScreen($r,'spreadsheet'); # # Open the form @@ -578,6 +603,7 @@ ENDSCRIPT $spreadsheet->display($r); } $r->print(''); + &Apache::lonquickgrades::endGradeScreen($r); $r->print(&Apache::loncommon::end_page()); $spreadsheet->clear_package(); return OK;