Diff for /loncom/homework/grades.pm between versions 1.442 and 1.446

version 1.442, 2007/10/01 19:41:51 version 1.446, 2007/10/08 22:29:59
Line 6945  sub savedState { Line 6945  sub savedState {
     return \%savedState;      return \%savedState;
 }  }
   
 #--- Displays the main menu page -------  sub grading_menu {
 sub gradingmenu {  
     my ($request) = @_;      my ($request) = @_;
     my ($symb)=&get_symb($request);      my ($symb)=&get_symb($request);
     if (!$symb) {return '';}      if (!$symb) {return '';}
     my $probTitle = &Apache::lonnet::gettitle($symb);      my $probTitle = &Apache::lonnet::gettitle($symb);
       my ($table,undef,$hdgrade) = &showResourceInfo($symb,$probTitle);
   
       #
       # Define menu data
       $env{'form.probTitle'} = &Apache::lonnet::gettitle($symb);
       my ($table) = &showResourceInfo($symb,$env{'form.probTitle'});
       $request->print($table);
       my %fields = ('symb'=>&Apache::lonenc::check_encrypt($symb),
                     'handgrade'=>$hdgrade,
                     'probTitle'=>$probTitle,
                     'command'=>'submit_options',
                     'saveState'=>"",
                     'gradingMenu'=>1,
                     'showgrading'=>"yes");
       my $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
       my @menu = ({ url => $url,
                        name => &mt('Manual Grading/View Submissions'),
                        short_description => 
       &mt('Start the process of hand grading submissions.'),
                    });
       $fields{'command'} = 'csvform';
       $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
       push (@menu, { url => $url,
                      name => &mt('Upload Scores'),
                      short_description => 
               &mt('Specify a file containing the class scores for current resource.')});
       $fields{'command'} = 'processclicker';
       $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
       push (@menu, { url => $url,
                      name => &mt('Process Clicker'),
                      short_description => 
               &mt('Specify a file containing the clicker information for this resource.')});
       $fields{'command'} = 'scantron_selectphase';
       $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
       push (@menu, { url => $url,
                      name => &mt('Grade Scantron Forms'),
                      short_description => 
               &mt('')});
       $fields{'command'} = 'verify';
       $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
       push (@menu, { url => "",
                      jscript => ' onClick="javascript:checkChoice2(document.forms.gradingMenu,\'5\',\'verify\')" ',
                      name => &mt('Verify Receipt'),
                      short_description => 
               &mt('')});
       $fields{'command'} = 'manage';
       $url = &Apache::lonhtmlcommon::build_url('/adm/helper/resettimes.helper',\%fields);
       push (@menu, { url => $url,
                      name => &mt('Manage Access Times'),
                      short_description => 
               &mt('')});
       $fields{'command'} = 'view';
       $url = &Apache::lonhtmlcommon::build_url('/adm/pickcode',\%fields);
       push (@menu, { url => $url,
                      name => &mt('View Saved CODEs'),
                      short_description => 
               &mt('')});
   
       #
       # Create the menu
       my $Str;
       # $Str .= '<h2>'.&mt('Please select a grading task').'</h2>';
       $Str .= '<form method="post" action="" name="gradingMenu">';
       $Str .= '<input type="hidden" name="command" value="" />'.
       '<input type="hidden" name="symb"        value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".
    '<input type="hidden" name="handgrade"   value="'.$hdgrade.'" />'."\n".
    '<input type="hidden" name="probTitle"   value="'.$probTitle.'" ue="" />'."\n".
    '<input type="hidden" name="saveState"   value="" />'."\n".
    '<input type="hidden" name="gradingMenu" value="1" />'."\n".
    '<input type="hidden" name="showgrading" value="yes" />'."\n";
   
       foreach my $menudata (@menu) {
           if ($menudata->{'name'} ne &mt('Verify Receipt')) {
               $Str .='    <h3><a '.
                   $menudata->{'jscript'}.
                   ' href="'.
                   $menudata->{'url'}.'" >'.
                   $menudata->{'name'}."</a></h3>\n";
           } else {
               $Str .='    <h3><a '.
                   $menudata->{'jscript'}.
                   ' href="javascript:checkChoice2(document.forms.gradingMenu,\'5\',\'verify\')" >'.
                   $menudata->{'name'}."</a></h3>\n";
               $Str .= ('&nbsp;'x8).
                       ' receipt: '.&Apache::lonnet::recprefix($env{'request.course.id'}).
                       '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />';
           }
           $Str .= '    '.('&nbsp;'x8).$menudata->{'short_description'}.
               "\n";
       }
       $Str .="</dl>\n";
       $Str .="</form>\n";
     $request->print(<<GRADINGMENUJS);      $request->print(<<GRADINGMENUJS);
 <script type="text/javascript" language="javascript">  <script type="text/javascript" language="javascript">
     function checkChoice(formname,val,cmdx) {      function checkChoice(formname,val,cmdx) {
Line 6972  sub gradingmenu { Line 7062  sub gradingmenu {
  }   }
  if (val < 7) formname.submit();   if (val < 7) formname.submit();
     }      }
       function checkChoice2(formname,val,cmdx) {
    if (val <= 2) {
       var cmd = radioSelection(formname.radioChoice);
       var cmdsave = cmd;
    } else {
       cmd = cmdx;
       cmdsave = 'submission';
    }
    formname.command.value = cmd;
    if (val < 5) formname.submit();
    if (val == 5) {
       if (!checkReceiptNo(formname,'notOK')) { return false;}
       formname.submit();
    }
    if (val < 7) formname.submit();
       }
   
     function checkReceiptNo(formname,nospace) {      function checkReceiptNo(formname,nospace) {
  var receiptNo = formname.receipt.value;   var receiptNo = formname.receipt.value;
Line 6990  sub gradingmenu { Line 7096  sub gradingmenu {
 GRADINGMENUJS  GRADINGMENUJS
     &commonJSfunctions($request);      &commonJSfunctions($request);
     my $result='<h3>&nbsp;<span class="LC_info">Manual Grading/View Submission</span></h3>';      my $result='<h3>&nbsp;<span class="LC_info">Manual Grading/View Submission</span></h3>';
     my ($table,undef,$hdgrade) = &showResourceInfo($symb,$probTitle);  
     $result.=$table;      $result.=$table;
     my (undef,$sections) = &getclasslist('all','0');      my (undef,$sections) = &getclasslist('all','0');
     my $savedState = &savedState();      my $savedState = &savedState();
Line 7002  GRADINGMENUJS Line 7107  GRADINGMENUJS
     $result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n".      $result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n".
  '<input type="hidden" name="symb"        value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".   '<input type="hidden" name="symb"        value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".
  '<input type="hidden" name="handgrade"   value="'.$hdgrade.'" />'."\n".   '<input type="hidden" name="handgrade"   value="'.$hdgrade.'" />'."\n".
  '<input type="hidden" name="probTitle"   value="'.$probTitle.'" />'."\n".   '<input type="hidden" name="probTitle"   value="'.$probTitle.'" ue="" />'."\n".
  '<input type="hidden" name="command"     value="" />'."\n".  
  '<input type="hidden" name="saveState"   value="" />'."\n".   '<input type="hidden" name="saveState"   value="" />'."\n".
  '<input type="hidden" name="gradingMenu" value="1" />'."\n".   '<input type="hidden" name="gradingMenu" value="1" />'."\n".
  '<input type="hidden" name="showgrading" value="yes" />'."\n";   '<input type="hidden" name="showgrading" value="yes" />'."\n";
Line 7028  GRADINGMENUJS Line 7132  GRADINGMENUJS
  }   }
     }      }
     $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> &nbsp; ';      $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> &nbsp; ';
 #    $result.= '</td><td>'."\n";      return $Str;    
 #    $result.='Put group select here'."\n";  }
   
   
   #--- Displays the submissions first page -------
   sub submit_options {
       my ($request) = @_;
       my ($symb)=&get_symb($request);
       if (!$symb) {return '';}
       my $probTitle = &Apache::lonnet::gettitle($symb);
   
       $request->print(<<GRADINGMENUJS);
   <script type="text/javascript" language="javascript">
       function checkChoice(formname,val,cmdx) {
    if (val <= 2) {
       var cmd = radioSelection(formname.radioChoice);
       var cmdsave = cmd;
    } else {
       cmd = cmdx;
       cmdsave = 'submission';
    }
    formname.command.value = cmd;
    formname.saveState.value = "saveCmd="+cmdsave+":saveSec="+pullDownSelection(formname.section)+
       ":saveSub="+pullDownSelection(formname.submitonly)+":saveStatus="+pullDownSelection(formname.Status);
    if (val < 5) formname.submit();
    if (val == 5) {
       if (!checkReceiptNo(formname,'notOK')) { return false;}
       formname.submit();
    }
    if (val < 7) formname.submit();
       }
   
       function checkReceiptNo(formname,nospace) {
    var receiptNo = formname.receipt.value;
    var checkOpt = false;
    if (nospace == "OK" && isNaN(receiptNo)) {checkOpt = true;}
    if (nospace == "notOK" && (isNaN(receiptNo) || receiptNo == "")) {checkOpt = true;}
    if (checkOpt) {
       alert("Please enter a receipt number given by a student in the receipt box.");
       formname.receipt.value = "";
       formname.receipt.focus();
       return false;
    }
    return true;
       }
   </script>
   GRADINGMENUJS
       &commonJSfunctions($request);
       my $result='<h3>&nbsp;<span class="LC_info">Manual Grading/View Submission</span></h3>';
       my ($table,undef,$hdgrade) = &showResourceInfo($symb,$probTitle);
       $result.=$table;
       my (undef,$sections) = &getclasslist('all','0');
       my $savedState = &savedState();
       my $saveCmd = ($$savedState{'saveCmd'} eq '' ? 'submission' : $$savedState{'saveCmd'});
       my $saveSec = ($$savedState{'saveSec'} eq '' ? 'all' : $$savedState{'saveSec'});
       my $saveSub = ($$savedState{'saveSub'} eq '' ? 'all' : $$savedState{'saveSub'});
       my $saveStatus = ($$savedState{'saveStatus'} eq '' ? 'Active' : $$savedState{'saveStatus'});
   
       $result.='<form action="/adm/grades" method="post" name="gradingMenu">'."\n".
    '<input type="hidden" name="symb"        value="'.&Apache::lonenc::check_encrypt($symb).'" />'."\n".
    '<input type="hidden" name="handgrade"   value="'.$hdgrade.'" />'."\n".
    '<input type="hidden" name="probTitle"   value="'.$probTitle.'" />'."\n".
    '<input type="hidden" name="command"     value="" />'."\n".
    '<input type="hidden" name="saveState"   value="" />'."\n".
    '<input type="hidden" name="gradingMenu" value="1" />'."\n".
    '<input type="hidden" name="showgrading" value="yes" />'."\n";
   
       $result.='<table border="0"><tr><td bgcolor=#777777>'."\n".
    '<table width="100%" border="0"><tr bgcolor="#e6ffff"><td>'."\n".
    '&nbsp;<b>Select a Grading/Viewing Option</b></td></tr>'."\n".
    '<tr bgcolor="#ffffe6" valign="top"><td>'."\n";
   
       $result.='<table width="100%" border="0">';
       $result.='<tr bgcolor="#ffffe6" valign="top">'."\n";
       $result.='<td><b>'.&mt('Sections').'</b></td>';
       $result.='<td><b>'.&mt('Groups').'</b></td>';
       $result.='<td><b>'.&mt('Access Status').'</td>'."\n";
       $result.='</tr>';
       $result.='<tr bgcolor="#ffffe6" valign="top"><td>'."\n".
    '&nbsp;<select name="section" multiple="multiple" size="3">'."\n";
       if (ref($sections)) {
    foreach (sort (@$sections)) {
       $result.='<option value="'.$_.'" '.
    ($saveSec eq $_ ? 'selected="selected"':'').'>'.$_.'</option>'."\n";
    }
       }
       $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="selected"' : ''). '>all</option></select> &nbsp; ';
       $result.= '</td><td>'."\n";
       $result.= &Apache::lonstatistics::GroupSelect('group','multiple',3);
     $result.='</td><td>'."\n";      $result.='</td><td>'."\n";
     $result.=&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,3,undef,'mult');      $result.=&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,3,undef,'mult');
   
Line 7064  GRADINGMENUJS Line 7255  GRADINGMENUJS
  '<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.   '<input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="Next->" />'.
  '</td></tr></table>'."\n";   '</td></tr></table>'."\n";
   
     $result.='</td><td valign="top">';      $result.='</td>'; #<td valign="top">';
   
     $result.='<table width="100%" border="0">';  
     $result.='<tr bgcolor="#ffffe6"><td>'.  
  '<input type="button" onClick="javascript:checkChoice(this.form,\'3\',\'csvform\');" value="'.&mt('Upload').'" />'.  
  ' '.&mt('scores from file').' </td></tr>'."\n";  
   
     $result.='<tr bgcolor="#ffffe6"><td>'.  
         '<input type="button" onClick="javascript:checkChoice(this.form,\'6\',\'processclicker\');" value="'.&mt('Process').'" />'.  
         ' '.&mt('clicker file').' </td></tr>'."\n";  
   
     $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.  
  '<input type="button" onClick="javascript:checkChoice(this.form,\'4\',\'scantron_selectphase\');'.  
  '" value="'.&mt('Grade').'" /> scantron forms</td></tr>'."\n";  
   
     if ((&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) && ($symb)) {  #    $result.='<table width="100%" border="0">';
  $result.='<tr bgcolor="#ffffe6"valign="top"><td>'.  #    $result.='<tr bgcolor="#ffffe6"><td>'.
     '<input type="button" onClick="javascript:checkChoice(this.form,\'5\',\'verify\');" value="'.&mt('Verify').'" />'.  # '<input type="button" onClick="javascript:checkChoice(this.form,\'3\',\'csvform\');" value="'.&mt('Upload').'" />'.
     ' '.&mt('receipt').': '.  # ' '.&mt('scores from file').' </td></tr>'."\n";
     &Apache::lonnet::recprefix($env{'request.course.id'}).  #
     '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />'.  #    $result.='<tr bgcolor="#ffffe6"><td>'.
     '</td></tr>'."\n";  #        '<input type="button" onClick="javascript:checkChoice(this.form,\'6\',\'processclicker\');" value="'.&mt('Process').'" />'.
     }   #        ' '.&mt('clicker file').' </td></tr>'."\n";
     $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.  #
  '<input type="button" onClick="javascript:this.form.action=\'/adm/helper/resettimes.helper\';this.form.submit();'.  #    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.
  '" value="'.&mt('Manage').'" /> access times.</td></tr>'."\n";  # '<input type="button" onClick="javascript:checkChoice(this.form,\'4\',\'scantron_selectphase\');'.
     $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.  # '" value="'.&mt('Grade').'" /> scantron forms</td></tr>'."\n";
  '<input type="button" onClick="javascript:this.form.command.value=\'codelist\';this.form.action=\'/adm/pickcode\';this.form.submit();'.  #
  '" value="'.&mt('View').'" /> saved CODEs.</td></tr>'."\n";  #    if ((&Apache::lonnet::allowed('mgr',$env{'request.course.id'})) && ($symb)) {
   # $result.='<tr bgcolor="#ffffe6"valign="top"><td>'.
     $result.='</table>'."\n".  #    '<input type="button" onClick="javascript:checkChoice(this.form,\'5\',\'verify\');" value="'.&mt('Verify').'" />'.
  '</td></tr></table>'."\n".  #    ' '.&mt('receipt').': '.
   #    &Apache::lonnet::recprefix($env{'request.course.id'}).
   #    '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />'.
   #    '</td></tr>'."\n";
   #    } 
   #    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.
   # '<input type="button" onClick="javascript:this.form.action=\'/adm/helper/resettimes.helper\';this.form.submit();'.
   # '" value="'.&mt('Manage').'" /> access times.</td></tr>'."\n";
   #    $result.='<tr bgcolor="#ffffe6"valign="top"><td colspan="2">'.
   # '<input type="button" onClick="javascript:this.form.command.value=\'codelist\';this.form.action=\'/adm/pickcode\';this.form.submit();'.
   # '" value="'.&mt('View').'" /> saved CODEs.</td></tr>'."\n";
   #
   #    $result.='</table>'."\n".'</td>';
       $result.= '</tr></table>'."\n".
  '</td></tr></table></form>'."\n";   '</td></tr></table></form>'."\n";
     return $result;      return $result;
 }  }
Line 7375  ENDHEADER Line 7566  ENDHEADER
     }      }
     $result.='<br />'.&mt('Found [_1] question(s)',$number).'<br />'.      $result.='<br />'.&mt('Found [_1] question(s)',$number).'<br />'.
              '<input type="hidden" name="number" value="'.$number.'" />'.               '<input type="hidden" name="number" value="'.$number.'" />'.
                &mt('Awarding [_1] percent for corrion(s)',$number).'<br />'.
                '<input type="hidden" name="number" value="'.$number.'" />'.
              &mt('Awarding [_1] percent for correct and [_2] percent for incorrect responses',               &mt('Awarding [_1] percent for correct and [_2] percent for incorrect responses',
                  $env{'form.pcorrect'},$env{'form.pincorrect'}).                   $env{'form.pcorrect'},$env{'form.pincorrect'}).
              '<br />';               '<br />';
Line 7605  ENDHEADER Line 7798  ENDHEADER
   
 sub handler {  sub handler {
     my $request=$_[0];      my $request=$_[0];
   
     &reset_caches();      &reset_caches();
     if ($env{'browser.mathml'}) {      if ($env{'browser.mathml'}) {
  &Apache::loncommon::content_type($request,'text/xml');   &Apache::loncommon::content_type($request,'text/xml');
Line 7661  sub handler { Line 7853  sub handler {
  } elsif ($command eq 'processGroup' && $perm{'vgr'}) {   } elsif ($command eq 'processGroup' && $perm{'vgr'}) {
     &processGroup($request);      &processGroup($request);
  } elsif ($command eq 'gradingmenu' && $perm{'vgr'}) {   } elsif ($command eq 'gradingmenu' && $perm{'vgr'}) {
     $request->print(&gradingmenu($request));      $request->print(&grading_menu($request));
    } elsif ($command eq 'submit_options' && $perm{'vgr'}) {
       $request->print(&submit_options($request));
  } elsif ($command eq 'viewgrades' && $perm{'vgr'}) {   } elsif ($command eq 'viewgrades' && $perm{'vgr'}) {
     $request->print(&viewgrades($request));      $request->print(&viewgrades($request));
  } elsif ($command eq 'handgrade' && $perm{'mgr'}) {   } elsif ($command eq 'handgrade' && $perm{'mgr'}) {

Removed from v.1.442  
changed lines
  Added in v.1.446


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>