--- loncom/homework/grades.pm 2010/04/12 22:19:53 1.613 +++ loncom/homework/grades.pm 2010/04/13 10:21:21 1.614 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.613 2010/04/12 22:19:53 www Exp $ +# $Id: grades.pm,v 1.614 2010/04/13 10:21:21 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -800,7 +800,7 @@ sub verifyreceipt { $contents. &Apache::loncommon::end_data_table()."\n"; } - return $string.&show_grading_menu_form($symb); + return $string; } #--- This is called by a number of programs. @@ -1082,7 +1082,6 @@ LISTJAVASCRIPT } elsif ($ctr == 1) { $gradeTable =~ s/type="checkbox"/type="checkbox" checked="checked"/; } - $gradeTable.=&show_grading_menu_form($symb); $request->print($gradeTable); return ''; } @@ -1896,7 +1895,6 @@ sub submission { $request->print('Unable to view requested student.('. $uname.':'.$udom.' in section '.$usec.' in course id '. $env{'request.course.id'}.')'); - $request->print(&show_grading_menu_form($symb)); return; } @@ -2225,10 +2223,6 @@ KEYWORDS 'onclick="javascript:checksubmit(this.form,\'Grade Student\',\'' .$counter.'\');" target="_self" />  '."\n" if (&canmodify($usec)); $toGrade.=''."\n"; - if (($env{'form.command'} eq 'submission') || - ($env{'form.command'} eq 'processGroup' && $counter == $total)) { - $toGrade.=''.&show_grading_menu_form($symb); - } $request->print($toGrade); return; } else { @@ -2328,7 +2322,6 @@ KEYWORDS $endform.=""; $endform.=''; - $endform.=&show_grading_menu_form($symb); $request->print($endform); } return ''; @@ -2701,7 +2694,6 @@ sub processHandGrade { my $the_end = '

'.&mt('LON-CAPA User Message').'


'."\n"; $the_end.=&mt('Message: No more students for this section or class.').'

'."\n"; $the_end.=&mt('Click on the button below to return to the grading menu.').'

'."\n"; - $the_end.=&show_grading_menu_form($symb); $request->print($the_end); } return ''; @@ -3432,7 +3424,6 @@ sub viewgrades { $section_display, $stu_status). ''; } - $result.=&show_grading_menu_form($symb); return $result; } @@ -3715,8 +3706,7 @@ sub editgrades { &Apache::loncommon::end_data_table_row(); } } - $result .= &Apache::loncommon::end_data_table(). - &show_grading_menu_form($symb); + $result .= &Apache::loncommon::end_data_table(); my $msg = '

'. &mt('Number of records updated = [_1] for [quant,_2,student].', $rec_update,$count).'
'. @@ -3938,7 +3928,6 @@ ENDUPFORM &mt("How do I create a CSV file from a spreadsheet")) .''."\n"; $result.='

'."\n"; - $result.=&show_grading_menu_form($symb); return $result; } @@ -3985,7 +3974,6 @@ sub csvuploadmap { } } &csvuploadmap_footer($request,$i,$keyfields); - $request->print(&show_grading_menu_form($symb)); return ''; } @@ -4029,7 +4017,6 @@ ENDPICK # FIXME do a check for any invalid user ids?... $request->print('


'."\n"); - $request->print(&show_grading_menu_form($symb)); return ''; } @@ -4158,7 +4145,6 @@ sub csvuploadassign { $request->print(join(', ',@notallowed)); } $request->print("
\n"); - $request->print(&show_grading_menu_form($symb)); return $error_msg; } #------------- end of section for handling csv file upload --------- @@ -4288,7 +4274,6 @@ LISTJAVASCRIPT $studentTable.=''."\n"; - $studentTable.=&show_grading_menu_form($symb); $request->print($studentTable); return ''; @@ -4343,7 +4328,6 @@ sub displayPage { if (!&canview($usec)) { $request->print(''.&mt('Unable to view requested student. ([_1])',$env{'form.student'}).''); - $request->print(&show_grading_menu_form($symb)); return; } my $result='

 '.$env{'form.title'}.'

'; @@ -4361,14 +4345,12 @@ sub displayPage { my $navmap = Apache::lonnavmaps::navmap->new(); unless (ref($navmap)) { $request->print(&navmap_errormsg()); - $request->print(&show_grading_menu_form($symb)); return; } my ($mapUrl, $id, $resUrl)=&Apache::lonnet::decode_symb($env{'form.page'}); my $map = $navmap->getResourceByUrl($resUrl); # add to navmaps if (!$map) { $request->print(''.&mt('Unable to view requested sequence. ([_1])',$resUrl).''); - $request->print(&show_grading_menu_form($symb)); return; } my $iterator = $navmap->getIterator($map->map_start(), @@ -4483,7 +4465,6 @@ sub displayPage { ''. ''."\n"; - $studentTable.=&show_grading_menu_form($symb); $request->print($studentTable); return ''; @@ -4621,7 +4602,6 @@ sub updateGradeByPage { my $usec=$classlist->{$env{'form.student'}}[5]; if (!&canmodify($usec)) { $request->print(''.&mt('Unable to modify requested student ([_1])',$env{'form.student'}).''); - $request->print(&show_grading_menu_form($env{'form.symb'})); return; } my $result='

 '.$env{'form.title'}.'

'; @@ -4640,7 +4620,6 @@ sub updateGradeByPage { my $map = $navmap->getResourceByUrl($resUrl); # add to navmaps if (!$map) { $request->print(''.&mt('Unable to grade requested sequence ([_1]).',$resUrl).''); - $request->print(&show_grading_menu_form($symb)); return; } my $iterator = $navmap->getIterator($map->map_start(), @@ -4766,7 +4745,6 @@ sub updateGradeByPage { } $studentTable.=&Apache::loncommon::end_data_table(); - $studentTable.=&show_grading_menu_form($env{'form.symb'}); my $grademsg=($changeflag == 0 ? &mt('No score was changed or updated.') : &mt('The scores were changed for [quant,_1,problem].', $changeflag)); @@ -5139,7 +5117,6 @@ sub scantron_selectphase { return; } my $default_form_data=&defaultFormData($symb); - my $grading_menu_button=&show_grading_menu_form($symb); my $file_selector=&scantron_uploads($file2grade); my $format_selector=&scantron_scantab(); my $CODE_selector=&scantron_CODElist(); @@ -5301,7 +5278,6 @@ sub scantron_selectphase { &Apache::loncommon::end_data_table_row()."\n". &Apache::loncommon::end_data_table()."\n". '
'); - $r->print($grading_menu_button); return; } @@ -6226,7 +6202,7 @@ sub scantron_do_warning { '); } - $r->print("
".&show_grading_menu_form($symb)); + $r->print("
"); return ''; } @@ -6374,7 +6350,7 @@ sub scantron_validate_file { $r->print(" ".&mt("this scanline saving it for later.")); } } - $r->print("
".&show_grading_menu_form($symb)); + $r->print("
"); return ''; } @@ -7637,7 +7613,6 @@ SCANTRONFORM if ($ssi_error) { $r->print(""); &ssi_print_error($r); - $r->print(&show_grading_menu_form($symb)); &Apache::lonnet::remove_lock($lock); return ''; # Dunno why the other returns return '' rather than just returning. } @@ -7715,7 +7690,6 @@ SCANTRONFORM $ssi_error = 0; # So end of handler error message does not trigger. $r->print(""); &ssi_print_error($r); - $r->print(&show_grading_menu_form($symb)); &Apache::lonnet::remove_lock($lock); return ''; # Why return ''? Beats me. } @@ -7743,7 +7717,6 @@ SCANTRONFORM $ssi_error = 0; # So end of handler error message does not trigger. $r->print(""); &ssi_print_error($r); - $r->print(&show_grading_menu_form($symb)); &Apache::lonnet::remove_lock($lock); delete($completedstudents{$uname}); return ''; @@ -7799,7 +7772,6 @@ SCANTRONFORM # $r->print("

took $lasttime

"); $r->print(""); - $r->print(&show_grading_menu_form($symb)); return ''; } @@ -7935,9 +7907,7 @@ sub scantron_upload_scantron_data_save { !&Apache::lonnet::allowed('usc', $env{'form.domainid'}.'_'.$env{'form.courseid'})) { $r->print(&mt("You are not allowed to upload bubblesheet data to the requested course.")."
"); - if ($symb) { - $r->print(&show_grading_menu_form($symb)); - } else { + unless ($symb) { $r->print($doanotherupload); } return ''; @@ -8078,7 +8048,6 @@ sub scantron_download_scantron_data { '.&mt('The requested file name was invalid.').'

'); - $r->print(&show_grading_menu_form($symb)); return; } my $orig='/uploaded/'.$cdom.'/'.$cname.'/scantron_orig_'.$file; @@ -8101,14 +8070,12 @@ sub scantron_download_scantron_data { '','').'

'); - $r->print(&show_grading_menu_form($symb)); return ''; } sub checkscantron_results { my ($r,$symb) = @_; if (!$symb) {return '';} - my $grading_menu_button=&show_grading_menu_form($symb); my $cid = $env{'request.course.id'}; my %lettdig = &letter_to_digits(); my $numletts = scalar(keys(%lettdig)); @@ -8261,7 +8228,7 @@ sub checkscantron_results { &Apache::loncommon::end_data_table()).'
'. &mt('Differences can occur if submissions were modified using manual grading after a bubblesheet grading pass.').'
'.&mt('If unexpected discrepancies were detected, it is recommended that you inspect the original bubblesheets.'); } - $r->print('
'.$grading_menu_button); + $r->print('
'); return; } @@ -8403,15 +8370,11 @@ sub letter_to_digits { #-------------------------- Menu interface ------------------------- # -#--- Show a Grading Menu button - Calls the next routine --- -sub show_grading_menu_form { - my ($symb)=@_; - my $result.='
'."\n". - ''."\n". - ''."\n". - ''."\n". - '
'."\n"; - return $result; +#--- Href with symb and command --- + +sub href_symb_cmd { + my ($symb,$cmd)=@_; + return '/adm/grades?symb='.&HTML::Entities::encode(&Apache::lonenc::check_encrypt($symb),'<>&"').'&command='.$cmd; } sub grading_menu { @@ -8544,7 +8507,6 @@ sub submit_options_sequence { '; - $result .= &show_grading_menu_form($symb); return $result; } @@ -8570,7 +8532,6 @@ sub submit_options_table { '; - $result .= &show_grading_menu_form($symb); return $result; } @@ -8600,7 +8561,6 @@ sub submit_options { '; - $result .= &show_grading_menu_form($symb); return $result; } @@ -8829,7 +8789,6 @@ ENDUPFORM ENDUPFORM $result.=''."\n". '

'."\n"; - $result.=&show_grading_menu_form($symb); return $result; } @@ -8843,11 +8802,11 @@ sub process_clicker_file { my $result=''; if (($env{'form.gradingmechanism'} eq 'specific') && ($env{'form.specificid'}!~/\w/)) { $result.=''.&mt('You need to specify a clicker ID for the correct answer').''; - return $result.&show_grading_menu_form($symb); + return $result; } if (($env{'form.gradingmechanism'} eq 'given') && ($env{'form.givenanswer'}!~/\S/)) { $result.=''.&mt('You need to specify the correct answer').''; - return $result.&show_grading_menu_form($symb); + return $result; } my $foundgiven=0; if ($env{'form.gradingmechanism'} eq 'given') { @@ -8894,7 +8853,7 @@ sub process_clicker_file { $result.="

\n"; if ($number==0) { $result.=''.&mt('No IDs found to determine correct answer').''; - return $result.&show_grading_menu_form($symb); + return $result; } } if (length($env{'form.upfile'}) < 2) { @@ -8902,7 +8861,7 @@ sub process_clicker_file { '', '', ''.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').''); - return $result.&show_grading_menu_form($symb); + return $result; } # Were able to get all the info needed, now analyze the file @@ -8941,7 +8900,7 @@ ENDHEADER '
'; if (($env{'form.gradingmechanism'} eq 'given') && ($number!=$foundgiven)) { $result.=''.&mt('Number of given answers does not agree with number of questions in file.').''; - return $result.&show_grading_menu_form($symb); + return $result; } # Remember Question Titles # FIXME: Possibly need delimiter other than ":" @@ -9003,7 +8962,7 @@ ENDHEADER } $result.=''."\n". '

'."\n"; - return $result.&show_grading_menu_form($symb); + return $result; } sub iclicker_eval { @@ -9173,7 +9132,7 @@ ENDHEADER $result.='
'.&mt('Successfully stored grades for [quant,_1,student].',$storecount). ''."\n". '

'."\n"; - return $result.&show_grading_menu_form($symb); + return $result; } sub navmap_errormsg { @@ -9185,7 +9144,7 @@ sub navmap_errormsg { sub startpage { my ($r,$symb,$crumbs,$onlyfolderflag,$nodisplayflag) = @_; - unshift(@$crumbs,{href=>"/adm/grades?command=gradingmenu&symb=".&HTML::Entities::encode($symb,'<>&"'),text=>"Grading"}); + unshift(@$crumbs,{href=>&href_symb_cmd($symb,'gradingmenu'),text=>"Grading"}); $r->print(&Apache::loncommon::start_page('Grading',undef, {'bread_crumbs' => $crumbs})); unless ($nodisplayflag) { @@ -9256,19 +9215,22 @@ sub handler { &startpage($request,$symb); $request->print(&submit_options($request,$symb)); } elsif ($command eq 'table' && $perm{'vgr'}) { - &startpage($request,$symb,[{href=>"", text=>"Grading table"}],1); + &startpage($request,$symb,[{href=>"", text=>"Grading table"}]); $request->print(&submit_options_table($request,$symb)); } elsif ($command eq 'all_for_one' && $perm{'vgr'}) { &startpage($request,$symb); $request->print(&submit_options_sequence($request,$symb)); } elsif ($command eq 'viewgrades' && $perm{'vgr'}) { - &startpage($request,$symb,[{href=>"/adm/grades?symb=".&HTML::Entities::encode($symb,'<>&"')."&command=table", text=>"Grading table"},{href=>'', text=>"Modify grades"}],1); + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,"table"), text=>"Grading table"},{href=>'', text=>"Modify grades"}]); $request->print(&viewgrades($request,$symb)); } elsif ($command eq 'handgrade' && $perm{'mgr'}) { &startpage($request,$symb); $request->print(&processHandGrade($request,$symb)); } elsif ($command eq 'editgrades' && $perm{'mgr'}) { - &startpage($request,$symb); + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,"table"), text=>"Grading table"}, + {href=>&href_symb_cmd($symb,'viewgrades').'&group=all§ion=all&Status=Active', + text=>"Modify grades"}, + {href=>'', text=>"Store grades"}]); $request->print(&editgrades($request,$symb)); } elsif ($command eq 'initialverifyreceipt' && $perm{'vgr'}) { &startpage($request,$symb);