--- loncom/interface/spreadsheet/lonspreadsheet.pm 2011/10/09 00:28:03 1.55.6.1 +++ loncom/interface/spreadsheet/lonspreadsheet.pm 2020/10/01 18:50:54 1.61.6.2.4.1 @@ -1,5 +1,5 @@ # -# $Id: lonspreadsheet.pm,v 1.55.6.1 2011/10/09 00:28:03 raeburn Exp $ +# $Id: lonspreadsheet.pm,v 1.61.6.2.4.1 2020/10/01 18:50:54 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -64,6 +64,7 @@ use Apache::lonnet; use Apache::lonhtmlcommon; use Apache::lonlocal; use Apache::loncoursedata(); +use Apache::lonquickgrades(); use HTML::Entities(); ## @@ -203,16 +204,6 @@ END sub handler { my $r=shift; # - # Overload checking - # - # Check this server - my $loaderror=&Apache::lonnet::overloaderror($r); - if ($loaderror) { return $loaderror; } - # Check the course homeserver - $loaderror= &Apache::lonnet::overloaderror($r, - $env{'course.'.$env{'request.course.id'}.'.home'}); -# if ($loaderror) { return $loaderror; } - # # HTML Header # if ($r->header_only) { @@ -250,8 +241,30 @@ 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. + # grading type is set to spreadsheet. # if ((!$allowed_to_view) && (!$allowed_to_edit)) { @@ -354,10 +367,10 @@ sub handler { ## my $js; if ($allowed_to_edit) { - my %lt=( + my %lt=&Apache::lonlocal::texthash( 'ce' => 'Cell', - 'ac' => 'Accept', - 'dc' => 'Discard Changes' + 'ac' => 'Save', + 'dc' => 'Cancel' ); my $extra_javascript = &Apache::loncommon::browser_and_searcher_javascript(); @@ -386,14 +399,14 @@ sub handler { // cellformula may contain less-than and greater-than symbols, so // we need to escape them? edit_text +='$cell_edit_start'; - edit_text += '
$cell_edit_end'; if (editwin != null && !(editwin.closed) ) { @@ -425,15 +438,15 @@ ENDSCRIPT text => 'Spreadsheet', faq => 134, bug => 'Spreadsheet'}); - my $settingslink = &Apache::lonhtmlcommon::coursepreflink(&mt('Grade display settings'), - 'grading'); - &Apache::lonhtmlcommon::add_breadcrumb_tool('advtools',$settingslink); $r->print(&Apache::loncommon::start_page('Grades Spreadsheet',$js). &Apache::lonhtmlcommon::breadcrumbs('Spreadsheet', - 'Spreadsheet_About')); + 'Spreadsheet_About'). + &Apache::lonhtmlcommon::coursepreflink(&mt('Grade display settings'), + 'grading')); + # # Open the form - # + # if ($warning) { $r->print(''.$warning.'
'); } @@ -459,7 +472,7 @@ ENDSCRIPT if (exists($env{'form.recalc'})) { &Apache::loncoursedata::delete_caches($env{'requres.course.id'}); } - if ($env{'form.recalc'} eq 'ilovewastingtime') { + if ($env{'form.recalc'} eq 'expireallsheets') { &Apache::lonnet::logthis('spreadsheet expired: entire course'); # expire ALL spreadsheets &Apache::lonnet::expirespread('','','studentcalc'); @@ -541,14 +554,11 @@ ENDSCRIPT ''. '