--- loncom/homework/grades.pm 2010/04/11 22:53:23 1.608 +++ loncom/homework/grades.pm 2010/04/13 16:12:54 1.617 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # The LON-CAPA Grading handler # -# $Id: grades.pm,v 1.608 2010/04/11 22:53:23 www Exp $ +# $Id: grades.pm,v 1.617 2010/04/13 16:12:54 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -617,7 +617,6 @@ sub jscriptNform { "\n"); $jscript.= '<form action="/adm/grades" method="post" name="onestudent">'."\n". '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". '<input type="hidden" name="Status" value="'.$stu_status.'" />'."\n". '<input type="hidden" name="command" value="submission" />'."\n". '<input type="hidden" name="student" value="" />'."\n". @@ -801,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. @@ -809,13 +808,15 @@ sub verifyreceipt { #--- Also called directly when one clicks on the subm button # on the problem page. sub listStudents { - my ($request,$symb) = @_; + my ($request,$symb,$submitonly) = @_; my $cdom = $env{"course.$env{'request.course.id'}.domain"}; my $cnum = $env{"course.$env{'request.course.id'}.num"}; my $getsec = $env{'form.section'} eq '' ? 'all' : $env{'form.section'}; my $getgroup = $env{'form.group'} eq '' ? 'all' : $env{'form.group'}; - my $submitonly= $env{'form.submitonly'} eq '' ? 'all' : $env{'form.submitonly'}; + unless ($submitonly) { + $submitonly= $env{'form.submitonly'} eq '' ? 'all' : $env{'form.submitonly'}; + } my $viewgrade = $env{'form.showgrading'} eq 'yes' ? 'View/Grade/Regrade' : 'View'; my $result='<h3><span class="LC_info"> ' @@ -920,7 +921,6 @@ LISTJAVASCRIPT '<input type="hidden" name="submitonly" value="'.$submitonly.'" />'."\n". '<input type="hidden" name="handgrade" value="'.$env{'form.handgrade'}.'" /><br />'."\n". '<input type="hidden" name="showgrading" value="'.$env{'form.showgrading'}.'" /><br />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". '<input type="hidden" name="saveStatusOld" value="'.$saveStatus.'" />'."\n"; @@ -1084,7 +1084,6 @@ LISTJAVASCRIPT } elsif ($ctr == 1) { $gradeTable =~ s/type="checkbox"/type="checkbox" checked="checked"/; } - $gradeTable.=&show_grading_menu_form($symb); $request->print($gradeTable); return ''; } @@ -1898,7 +1897,6 @@ sub submission { $request->print('<span class="LC_warning">Unable to view requested student.('. $uname.':'.$udom.' in section '.$usec.' in course id '. $env{'request.course.id'}.')</span>'); - $request->print(&show_grading_menu_form($symb)); return; } @@ -1956,7 +1954,6 @@ sub submission { my $stu_status = join(':',&Apache::loncommon::get_env_multiple('form.Status')); $request->print('<form action="/adm/grades" method="post" name="SCORE" enctype="multipart/form-data">'."\n". '<input type="hidden" name="command" value="handgrade" />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". '<input type="hidden" name="Status" value="'.$stu_status.'" />'."\n". '<input type="hidden" name="overRideScore" value="'.$overRideScore.'" />'."\n". '<input type="hidden" name="refresh" value="off" />'."\n". @@ -2228,10 +2225,6 @@ KEYWORDS 'onclick="javascript:checksubmit(this.form,\'Grade Student\',\'' .$counter.'\');" target="_self" /> '."\n" if (&canmodify($usec)); $toGrade.='</div>'."\n"; - if (($env{'form.command'} eq 'submission') || - ($env{'form.command'} eq 'processGroup' && $counter == $total)) { - $toGrade.='</form>'.&show_grading_menu_form($symb); - } $request->print($toGrade); return; } else { @@ -2331,7 +2324,6 @@ KEYWORDS $endform.="<input type='hidden' value='".&get_increment(). "' name='increment' />"; $endform.='</td></tr></table></form>'; - $endform.=&show_grading_menu_form($symb); $request->print($endform); } return ''; @@ -2704,7 +2696,6 @@ sub processHandGrade { my $the_end = '<h3><span class="LC_info">'.&mt('LON-CAPA User Message').'</span></h3><br />'."\n"; $the_end.=&mt('<b>Message: </b> No more students for this section or class.').'<br /><br />'."\n"; $the_end.=&mt('Click on the button below to return to the grading menu.').'<br /><br />'."\n"; - $the_end.=&show_grading_menu_form($symb); $request->print($the_end); } return ''; @@ -3289,7 +3280,6 @@ sub viewgrades { '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". '<input type="hidden" name="command" value="editgrades" />'."\n". &build_section_inputs(). - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". '<input type="hidden" name="Status" value="'.$env{'stu_status'}.'" />'."\n". my ($common_header,$specific_header); @@ -3436,7 +3426,6 @@ sub viewgrades { $section_display, $stu_status). '</span>'; } - $result.=&show_grading_menu_form($symb); return $result; } @@ -3719,8 +3708,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 = '<p><b>'. &mt('Number of records updated = [_1] for [quant,_2,student].', $rec_update,$count).'</b><br />'. @@ -3856,7 +3844,6 @@ to this page if the data selected is ins <input type="hidden" name="upfile_associate" value="$env{'form.upfile_associate'}" /> <input type="hidden" name="symb" value="$symb" /> -<input type="hidden" name="saveState" value="$env{'form.saveState'}" /> <input type="hidden" name="command" value="csvuploadoptions" /> <hr /> ENDPICK @@ -3934,7 +3921,6 @@ sub upcsvScores_form { <form method="post" enctype="multipart/form-data" action="/adm/grades" name="gradesupload"> <input type="hidden" name="symb" value="$symb" /> <input type="hidden" name="command" value="csvuploadmap" /> -<input type="hidden" name="saveState" value="$env{'form.saveState'}" /> $upfile_select <br /><input type="button" onclick="javascript:checkUpload(this.form);" value="$upload" /> <label><input type="checkbox" name="noFirstLine" />$ignore</label> @@ -3944,7 +3930,6 @@ ENDUPFORM &mt("How do I create a CSV file from a spreadsheet")) .'</td></tr></table>'."\n"; $result.='</td></tr></table><br /><br />'."\n"; - $result.=&show_grading_menu_form($symb); return $result; } @@ -3991,7 +3976,6 @@ sub csvuploadmap { } } &csvuploadmap_footer($request,$i,$keyfields); - $request->print(&show_grading_menu_form($symb)); return ''; } @@ -4035,7 +4019,6 @@ ENDPICK # FIXME do a check for any invalid user ids?... $request->print('<input type="submit" value="Assign Grades" /><br /> <hr /></form>'."\n"); - $request->print(&show_grading_menu_form($symb)); return ''; } @@ -4164,7 +4147,6 @@ sub csvuploadassign { $request->print(join(', ',@notallowed)); } $request->print("<br />\n"); - $request->print(&show_grading_menu_form($symb)); return $error_msg; } #------------- end of section for handling csv file upload --------- @@ -4248,8 +4230,7 @@ LISTJAVASCRIPT my $stu_status = join(':',&Apache::loncommon::get_env_multiple('form.Status')); $result.='<input type="hidden" name="Status" value="'.$stu_status.'" />'."\n". '<input type="hidden" name="command" value="displayPage" />'."\n". - '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."<br />\n"; + '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."<br />\n"; $result.=' <b>'.&mt('Use CODE').': </b> <input type="text" name="CODE" value="" /> <br />'."\n"; @@ -4295,7 +4276,6 @@ LISTJAVASCRIPT $studentTable.='<input type="button" '. 'onclick="javascript:checkPickOne(this.form);" value="'.&mt('Next').' →" /></form>'."\n"; - $studentTable.=&show_grading_menu_form($symb); $request->print($studentTable); return ''; @@ -4350,7 +4330,6 @@ sub displayPage { if (!&canview($usec)) { $request->print('<span class="LC_warning">'.&mt('Unable to view requested student. ([_1])',$env{'form.student'}).'</span>'); - $request->print(&show_grading_menu_form($symb)); return; } my $result='<h3><span class="LC_info"> '.$env{'form.title'}.'</span></h3>'; @@ -4368,14 +4347,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('<span class="LC_warning">'.&mt('Unable to view requested sequence. ([_1])',$resUrl).'</span>'); - $request->print(&show_grading_menu_form($symb)); return; } my $iterator = $navmap->getIterator($map->map_start(), @@ -4388,8 +4365,7 @@ sub displayPage { '<input type="hidden" name="page" value="'.$pageTitle.'" />'."\n". '<input type="hidden" name="title" value="'.$env{'form.title'}.'" />'."\n". '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". - '<input type="hidden" name="overRideScore" value="no" />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n"; + '<input type="hidden" name="overRideScore" value="no" />'."\n"; if (defined($env{'form.CODE'})) { $studentTable.= @@ -4491,7 +4467,6 @@ sub displayPage { '<input type="button" value="'.&mt('Save').'" '. 'onclick="javascript:checkSubmitPage(this.form,'.$question.');" />'. '</form>'."\n"; - $studentTable.=&show_grading_menu_form($symb); $request->print($studentTable); return ''; @@ -4629,7 +4604,6 @@ sub updateGradeByPage { my $usec=$classlist->{$env{'form.student'}}[5]; if (!&canmodify($usec)) { $request->print('<span class="LC_warning">'.&mt('Unable to modify requested student ([_1])',$env{'form.student'}).'</span>'); - $request->print(&show_grading_menu_form($env{'form.symb'})); return; } my $result='<h3><span class="LC_info"> '.$env{'form.title'}.'</span></h3>'; @@ -4648,7 +4622,6 @@ sub updateGradeByPage { my $map = $navmap->getResourceByUrl($resUrl); # add to navmaps if (!$map) { $request->print('<span class="LC_warning">'.&mt('Unable to grade requested sequence ([_1]).',$resUrl).'</span>'); - $request->print(&show_grading_menu_form($symb)); return; } my $iterator = $navmap->getIterator($map->map_start(), @@ -4774,7 +4747,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)); @@ -4852,8 +4824,7 @@ the homework problem. sub defaultFormData { my ($symb)=@_; - return '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'; + return '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'; } @@ -5148,7 +5119,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(); @@ -5310,7 +5280,6 @@ sub scantron_selectphase { &Apache::loncommon::end_data_table_row()."\n". &Apache::loncommon::end_data_table()."\n". '</form><br />'); - $r->print($grading_menu_button); return; } @@ -6235,7 +6204,7 @@ sub scantron_do_warning { <input type="hidden" name="command" value="scantron_validate" /> '); } - $r->print("</form><br />".&show_grading_menu_form($symb)); + $r->print("</form><br />"); return ''; } @@ -6383,7 +6352,7 @@ sub scantron_validate_file { $r->print(" ".&mt("this scanline saving it for later.")); } } - $r->print(" </form><br />".&show_grading_menu_form($symb)); + $r->print(" </form><br />"); return ''; } @@ -7646,7 +7615,6 @@ SCANTRONFORM if ($ssi_error) { $r->print("</form>"); &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. } @@ -7724,7 +7692,6 @@ SCANTRONFORM $ssi_error = 0; # So end of handler error message does not trigger. $r->print("</form>"); &ssi_print_error($r); - $r->print(&show_grading_menu_form($symb)); &Apache::lonnet::remove_lock($lock); return ''; # Why return ''? Beats me. } @@ -7752,7 +7719,6 @@ SCANTRONFORM $ssi_error = 0; # So end of handler error message does not trigger. $r->print("</form>"); &ssi_print_error($r); - $r->print(&show_grading_menu_form($symb)); &Apache::lonnet::remove_lock($lock); delete($completedstudents{$uname}); return ''; @@ -7808,7 +7774,6 @@ SCANTRONFORM # $r->print("<p>took $lasttime</p>"); $r->print("</form>"); - $r->print(&show_grading_menu_form($symb)); return ''; } @@ -7944,9 +7909,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.")."<br />"); - if ($symb) { - $r->print(&show_grading_menu_form($symb)); - } else { + unless ($symb) { $r->print($doanotherupload); } return ''; @@ -7974,7 +7937,7 @@ sub scantron_upload_scantron_data_save { } } if ($symb) { - $r->print(&scantron_selectphase($r,$uploadedfile)); + $r->print(&scantron_selectphase($r,$uploadedfile,$symb)); } else { $r->print($doanotherupload); } @@ -8087,7 +8050,6 @@ sub scantron_download_scantron_data { '.&mt('The requested file name was invalid.').' </p> '); - $r->print(&show_grading_menu_form($symb)); return; } my $orig='/uploaded/'.$cdom.'/'.$cname.'/scantron_orig_'.$file; @@ -8110,14 +8072,12 @@ sub scantron_download_scantron_data { '<a href="'.$skipped.'">','</a>').' </p> '); - $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)); @@ -8270,7 +8230,7 @@ sub checkscantron_results { &Apache::loncommon::end_data_table()).'<br />'. &mt('Differences can occur if submissions were modified using manual grading after a bubblesheet grading pass.').'<br />'.&mt('If unexpected discrepancies were detected, it is recommended that you inspect the original bubblesheets.'); } - $r->print('</form><br />'.$grading_menu_button); + $r->print('</form><br />'); return; } @@ -8412,16 +8372,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.='<br /><form action="/adm/grades" method="post">'."\n". - '<input type="hidden" name="symb" value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n". - '<input type="hidden" name="saveState" value="'.$env{'form.saveState'}.'" />'."\n". - '<input type="hidden" name="command" value="gradingmenu" />'."\n". - '<input type="submit" name="submit" value="'.&mt('Grading Menu').'" />'."\n". - '</form>'."\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 { @@ -8477,7 +8432,7 @@ sub grading_menu { icon => 'edit-find-replace.png', linktitle => 'Grade current resource for all students.' }, - { linktext => 'Grade complete page/sequence/folder for one student', + { linktext => 'Grade page/folder for one student', url => $url1d, permission => 'F', icon => 'edit-find-replace.png', @@ -8504,7 +8459,7 @@ sub grading_menu { icon => 'stat.png', linktitle => 'Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.' }, - { linktext => 'Verify Receipt No.', + { linktext => 'Verify Receipt Number', url => $url5, permission => 'F', icon => 'edit-find-replace.png', @@ -8545,7 +8500,7 @@ sub submit_options_sequence { $result.=' <h2> - '.&mt('Grade complete page/sequence/folder for one student').' + '.&mt('Grade page/folder for one student').' </h2>'. &selectfield(0). '<input type="hidden" name="command" value="pickStudentPage" /> @@ -8554,7 +8509,6 @@ sub submit_options_sequence { </div> </div> </form>'; - $result .= &show_grading_menu_form($symb); return $result; } @@ -8580,7 +8534,6 @@ sub submit_options_table { </div> </div> </form>'; - $result .= &show_grading_menu_form($symb); return $result; } @@ -8610,7 +8563,6 @@ sub submit_options { </form>'; - $result .= &show_grading_menu_form($symb); return $result; } @@ -8822,7 +8774,6 @@ ENDUPFORM <form method="post" enctype="multipart/form-data" action="/adm/grades" name="gradesupload"> <input type="hidden" name="symb" value="$symb" /> <input type="hidden" name="command" value="processclickerfile" /> -<input type="hidden" name="saveState" value="$env{'form.saveState'}" /> <input type="file" name="upfile" size="50" /> <br /><label>$type: $selectform</label> <br /><label><input type="radio" name="gradingmechanism" value="attendance"$checked{'attendance'} onclick="sanitycheck()" />$attendance </label> @@ -8840,7 +8791,6 @@ ENDUPFORM ENDUPFORM $result.='</td></tr></table>'."\n". '</td></tr></table><br /><br />'."\n"; - $result.=&show_grading_menu_form($symb); return $result; } @@ -8854,11 +8804,11 @@ sub process_clicker_file { my $result=''; if (($env{'form.gradingmechanism'} eq 'specific') && ($env{'form.specificid'}!~/\w/)) { $result.='<span class="LC_error">'.&mt('You need to specify a clicker ID for the correct answer').'</span>'; - return $result.&show_grading_menu_form($symb); + return $result; } if (($env{'form.gradingmechanism'} eq 'given') && ($env{'form.givenanswer'}!~/\S/)) { $result.='<span class="LC_error">'.&mt('You need to specify the correct answer').'</span>'; - return $result.&show_grading_menu_form($symb); + return $result; } my $foundgiven=0; if ($env{'form.gradingmechanism'} eq 'given') { @@ -8905,7 +8855,7 @@ sub process_clicker_file { $result.="</p>\n"; if ($number==0) { $result.='<span class="LC_error">'.&mt('No IDs found to determine correct answer').'</span>'; - return $result.&show_grading_menu_form($symb); + return $result; } } if (length($env{'form.upfile'}) < 2) { @@ -8913,7 +8863,7 @@ sub process_clicker_file { '<span class="LC_error">', '</span>', '<span class="LC_filename">'.&HTML::Entities::encode($env{'form.upfile.filename'},'<>&"').'</span>'); - return $result.&show_grading_menu_form($symb); + return $result; } # Were able to get all the info needed, now analyze the file @@ -8928,7 +8878,6 @@ sub process_clicker_file { <form method="post" action="/adm/grades" name="clickeranalysis"> <input type="hidden" name="symb" value="$symb" /> <input type="hidden" name="command" value="assignclickergrades" /> -<input type="hidden" name="saveState" value="$env{'form.saveState'}" /> <input type="hidden" name="gradingmechanism" value="$env{'form.gradingmechanism'}" /> <input type="hidden" name="pcorrect" value="$env{'form.pcorrect'}" /> <input type="hidden" name="pincorrect" value="$env{'form.pincorrect'}" /> @@ -8953,7 +8902,7 @@ ENDHEADER '<br />'; if (($env{'form.gradingmechanism'} eq 'given') && ($number!=$foundgiven)) { $result.='<span class="LC_error">'.&mt('Number of given answers does not agree with number of questions in file.').'</span>'; - return $result.&show_grading_menu_form($symb); + return $result; } # Remember Question Titles # FIXME: Possibly need delimiter other than ":" @@ -9015,7 +8964,7 @@ ENDHEADER } $result.='</form></td></tr></table>'."\n". '</td></tr></table><br /><br />'."\n"; - return $result.&show_grading_menu_form($symb); + return $result; } sub iclicker_eval { @@ -9185,7 +9134,7 @@ ENDHEADER $result.='<br />'.&mt('Successfully stored grades for [quant,_1,student].',$storecount). '</td></tr></table>'."\n". '</td></tr></table><br /><br />'."\n"; - return $result.&show_grading_menu_form($symb); + return $result; } sub navmap_errormsg { @@ -9194,27 +9143,14 @@ sub navmap_errormsg { &mt('It is recommended that you [_1]re-initialize the course[_2] and then return to this grading page.','<a href="/adm/roles?selectrole=1&newrole='.$env{'request.role'}.'">','</a>'). '</div>'; } -sub startpage{ - my ($r,$crumbs,$symb,$onlyfolderflag) = @_; - unshift(@$crumbs, {href=>"/adm/grades?command=gradingmenu&symb=".&HTML::Entities::encode($symb,'<>&"'),text=>"Grading"}); +sub startpage { + my ($r,$symb,$crumbs,$onlyfolderflag,$nodisplayflag) = @_; + unshift(@$crumbs,{href=>&href_symb_cmd($symb,'gradingmenu'),text=>"Grading"}); $r->print(&Apache::loncommon::start_page('Grading',undef, {'bread_crumbs' => $crumbs})); - if ($env{'form.symb'}) { - my $symb=$env{'form.symb'}; - my $title=&Apache::lonnet::gettitle($symb); - $r->print(&Apache::loncommon::start_data_table()); - unless ($onlyfolderflag) { - $r->print(&Apache::loncommon::start_data_table_row(). - '<th>'.&mt('Resource:').'</th><td>'.$title.'</td>'. - &Apache::loncommon::end_data_table_row()); - } - my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symb); - my $folder=&Apache::lonnet::gettitle($map); - $r->print(&Apache::loncommon::start_data_table_row(). - '<th>'.&mt('Folder:').'</th><td>'.$folder.'</td>'. - &Apache::loncommon::end_data_table_row(). - &Apache::loncommon::end_data_table()); + unless ($nodisplayflag) { + $r->print(&Apache::lonhtmlcommon::resource_info_box($symb,$onlyfolderflag)); } } @@ -9258,50 +9194,84 @@ sub handler { &init_perm(); if ($command eq 'submission' && $perm{'vgr'}) { &startpage($request,$symb,[{href=>"", text=>"Student Submissions"}]); - ($env{'form.student'} eq '' ? &listStudents($request) : &submission($request,0,0)); + ($env{'form.student'} eq '' ? &listStudents($request,$symb) : &submission($request,0,0,$symb)); } elsif ($command eq 'pickStudentPage' && $perm{'vgr'}) { + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,'all_for_one'),text=>'Grade page/folder for one student'}, + {href=>'',text=>'Select student'}],1,1); &pickStudentPage($request,$symb); } elsif ($command eq 'displayPage' && $perm{'vgr'}) { + &startpage($request,$symb, + [{href=>&href_symb_cmd($symb,'all_for_one'),text=>'Grade page/folder for one student'}, + {href=>'',text=>'Select student'}, + {href=>'',text=>'Grade student'}],1,1); &displayPage($request,$symb); } elsif ($command eq 'gradeByPage' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,'all_for_one'),text=>'Grade page/folder for one student'}, + {href=>'',text=>'Select student'}, + {href=>'',text=>'Grade student'}, + {href=>'',text=>'Store grades'}],1,1); &updateGradeByPage($request,$symb); } elsif ($command eq 'processGroup' && $perm{'vgr'}) { + &startpage($request,$symb); &processGroup($request,$symb); } elsif ($command eq 'gradingmenu' && $perm{'vgr'}) { &startpage($request,$symb); $request->print(&grading_menu($request,$symb)); } elsif ($command eq 'individual' && $perm{'vgr'}) { + &startpage($request,$symb,[{href=>'',text=>'Select individual students to grade'}]); $request->print(&submit_options($request,$symb)); } elsif ($command eq 'ungraded' && $perm{'vgr'}) { - $request->print(&submit_options($request,$symb)); + &startpage($request,$symb,[{href=>'',text=>'Grade ungraded submissions'}]); + $request->print(&listStudents($request,$symb,'graded')); } elsif ($command eq 'table' && $perm{'vgr'}) { - $request->print(&submit_options_table($request),$symb); + &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,[{href=>'',text=>'Grade page/folder for one student'}],1,1); $request->print(&submit_options_sequence($request,$symb)); } elsif ($command eq 'viewgrades' && $perm{'vgr'}) { + &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,[{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'}) { - $request->print(&initialverifyreceipt($request),$symb); + &startpage($request,$symb,[{href=>'',text=>'Verify Receipt Number'}]); + $request->print(&initialverifyreceipt($request,$symb)); } elsif ($command eq 'verify' && $perm{'vgr'}) { + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,"initialverifyreceipt"),text=>'Verify Receipt Number'}, + {href=>'',text=>'Verification Result'}]); $request->print(&verifyreceipt($request,$symb)); } elsif ($command eq 'processclicker' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Process clicker'}]); $request->print(&process_clicker($request,$symb)); } elsif ($command eq 'processclickerfile' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,'processclicker'), text=>'Process clicker'}, + {href=>'', text=>'Process clicker file'}]); $request->print(&process_clicker_file($request,$symb)); } elsif ($command eq 'assignclickergrades' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>&href_symb_cmd($symb,'processclicker'), text=>'Process clicker'}, + {href=>'', text=>'Process clicker file'}, + {href=>'', text=>'Store grades'}]); $request->print(&assign_clicker_grades($request,$symb)); } elsif ($command eq 'csvform' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&upcsvScores_form($request,$symb)); } elsif ($command eq 'csvupload' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&csvupload($request,$symb)); } elsif ($command eq 'csvuploadmap' && $perm{'mgr'} ) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&csvuploadmap($request,$symb)); } elsif ($command eq 'csvuploadoptions' && $perm{'mgr'}) { if ($env{'form.associate'} ne 'Reverse Association') { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&csvuploadoptions($request,$symb)); } else { if ( $env{'form.upfile_associate'} ne 'reverse' ) { @@ -9309,32 +9279,43 @@ sub handler { } else { $env{'form.upfile_associate'} = 'forward'; } + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&csvuploadmap($request,$symb)); } } elsif ($command eq 'csvuploadassign' && $perm{'mgr'} ) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&csvuploadassign($request,$symb)); } elsif ($command eq 'scantron_selectphase' && $perm{'mgr'}) { - $request->print(&scantron_selectphase($request,$symb)); + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); + $request->print(&scantron_selectphase($request,undef,$symb)); } elsif ($command eq 'scantron_warning' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&scantron_do_warning($request,$symb)); } elsif ($command eq 'scantron_validate' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&scantron_validate_file($request,$symb)); } elsif ($command eq 'scantron_process' && $perm{'mgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&scantron_process_students($request,$symb)); } elsif ($command eq 'scantronupload' && (&Apache::lonnet::allowed('usc',$env{'request.role.domain'})|| &Apache::lonnet::allowed('usc',$env{'request.course.id'}))) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&scantron_upload_scantron_data($request,$symb)); } elsif ($command eq 'scantronupload_save' && (&Apache::lonnet::allowed('usc',$env{'request.role.domain'})|| &Apache::lonnet::allowed('usc',$env{'request.course.id'}))) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&scantron_upload_scantron_data_save($request,$symb)); } elsif ($command eq 'scantron_download' && &Apache::lonnet::allowed('usc',$env{'request.course.id'})) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&scantron_download_scantron_data($request,$symb)); } elsif ($command eq 'checksubmissions' && $perm{'vgr'}) { + &startpage($request,$symb,[{href=>'', text=>'Grade/Manage/Review Bubblesheets'}],1,1); $request->print(&checkscantron_results($request,$symb)); } elsif ($command) { + &startpage($request,$symb); $request->print('<p class="LC_error">'.&mt('Access Denied ([_1])',$command).'</p>'); } }