Diff for /loncom/homework/grades.pm between versions 1.574 and 1.574.2.6

version 1.574, 2009/05/14 14:24:07 version 1.574.2.6, 2009/12/27 02:05:40
Line 1734  sub gradeBox { Line 1734  sub gradeBox {
   
  #&mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line);   #&mt('<td><b>Part:</b></td><td>[_1]</td><td><b>Points:</b></td><td>[_2]</td><td>or</td><td>[_3]</td>',$display_part,$radio,$line);
     $result .=       $result .= 
     '<td><b>'.&mt('Part').':</b></td><td>'.$display_part.'</td><td><b>'.&mt('Points').':</b></td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>'.      '<td><b>'.&mt('Part').':</b></td><td>'.$display_part.'</td><td><b>'.&mt('Points').':</b></td><td>'.$radio.'</td><td>'.&mt('or').'</td><td>'.$line.'</td>';
       
     $result.='</tr></table>'."\n";      $result.='</tr></table>'."\n";
     $result.='<input type="hidden" name="stores'.$counter.'_'.$partid.'" value="" />'."\n".      $result.='<input type="hidden" name="stores'.$counter.'_'.$partid.'" value="" />'."\n".
  '<input type="hidden" name="oldpts'.$counter.'_'.$partid.'" value="'.$score.'" />'."\n".   '<input type="hidden" name="oldpts'.$counter.'_'.$partid.'" value="'.$score.'" />'."\n".
Line 2296  KEYWORDS Line 2295  KEYWORDS
     '<option>7</option><option>10</option></select>'."\n";      '<option>7</option><option>10</option></select>'."\n";
  my $nsel = ($env{'form.NTSTU'} ne '' ? $env{'form.NTSTU'} : '1');   my $nsel = ($env{'form.NTSTU'} ne '' ? $env{'form.NTSTU'} : '1');
  $ntstu =~ s/<option>$nsel</<option selected="selected">$nsel</;   $ntstu =~ s/<option>$nsel</<option selected="selected">$nsel</;
  $endform.=&mt('[quant,_1,student]',$ntstu);          $endform.=&mt('[_1]student(s)',$ntstu);
  $endform.='&nbsp;&nbsp;<input type="button" value="'.&mt('Previous').'" '.   $endform.='&nbsp;&nbsp;<input type="button" value="'.&mt('Previous').'" '.
     'onClick="javascript:checksubmit(this.form,\'Previous\');" target="_self" /> &nbsp;'."\n".      'onClick="javascript:checksubmit(this.form,\'Previous\');" target="_self" /> &nbsp;'."\n".
     '<input type="button" value="'.&mt('Next').'" '.      '<input type="button" value="'.&mt('Next').'" '.
Line 4689  sub updateGradeByPage { Line 4688  sub updateGradeByPage {
 #  #
 #-------------------------------------------------------------------  #-------------------------------------------------------------------
   
 #--------------------Scantron Grading-----------------------------------  #--------------------Bubblesheet (Scantron) Grading-----------------------------------
 #  #
 #------ start of section for handling grading by page/sequence ---------  #------ start of section for handling grading by page/sequence ---------
   
Line 5199  sub scantron_selectphase { Line 5198  sub scantron_selectphase {
               &Apache::loncommon::start_data_table_row()."\n".                &Apache::loncommon::start_data_table_row()."\n".
               '<td colspan="2">'."\n".                '<td colspan="2">'."\n".
               '<input type="hidden" name="command" value="checksubmissions" />'."\n".                '<input type="hidden" name="command" value="checksubmissions" />'."\n".
               '<input type="submit" value="'.&mt('Review Scantron Data and Submission Records').'" />'."\n".                '<input type="submit" value="'.&mt('Review Bubblesheet Data and Submission Records').'" />'."\n".
               '</td>'."\n".                '</td>'."\n".
               &Apache::loncommon::end_data_table_row()."\n".                &Apache::loncommon::end_data_table_row()."\n".
               &Apache::loncommon::end_data_table()."\n".                &Apache::loncommon::end_data_table()."\n".
Line 7474  SCANTRONFORM Line 7473  SCANTRONFORM
           
     my $lock=&Apache::lonnet::set_lock(&mt('Grading bubblesheet exam'));      my $lock=&Apache::lonnet::set_lock(&mt('Grading bubblesheet exam'));
     my $count=&get_todo_count($scanlines,$scan_data);      my $count=&get_todo_count($scanlines,$scan_data);
     my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Scantron Status',      my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Bubblesheet Status',
      'Scantron Progress',$count,       'Bubblesheet Progress',$count,
     'inline',undef,'scantronupload');      'inline',undef,'scantronupload');
     &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,      &Apache::lonhtmlcommon::Update_PrgWin($r,\%prog_state,
   'Processing first student');    'Processing first student');
Line 7709  sub scantron_upload_scantron_data { Line 7708  sub scantron_upload_scantron_data {
     my $syllabuslink = '<a href="javascript:ToSyllabus();">'.&mt('Syllabus').'</a>'.      my $syllabuslink = '<a href="javascript:ToSyllabus();">'.&mt('Syllabus').'</a>'.
                        ('&nbsp'x2).&mt('(shows course personnel)');                          ('&nbsp'x2).&mt('(shows course personnel)'); 
     my $default_form_data=&defaultFormData(&get_symb($r,1));      my $default_form_data=&defaultFormData(&get_symb($r,1));
       my $nofile_alert = &mt('Please use the browse button to select a file from your local directory.');
       my $nocourseid_alert = &mt("Please use the 'Select Course' link to open a separate window where you can search for a course to which a file can be uploaded.");
     $r->print('      $r->print('
 <script type="text/javascript" language="javascript">  <script type="text/javascript" language="javascript">
     function checkUpload(formname) {      function checkUpload(formname) {
  if (formname.upfile.value == "") {   if (formname.upfile.value == "") {
     alert("'.&mt('Please use the browse button to select a file from your local directory.').'");      alert("'.$nofile_alert.'");
     return false;      return false;
  }   }
         if (formname.courseid.value == "") {          if (formname.courseid.value == "") {
             alert("'.&mt('Please use the \"Select Course\" link to open a separate window where you can search for a course to which a file can be uploaded.').'");              alert("'.$nocourseid_alert.'");
             return false;              return false;
         }          }
  formname.submit();   formname.submit();
Line 7759  sub scantron_upload_scantron_data { Line 7760  sub scantron_upload_scantron_data {
   &Apache::lonhtmlcommon::end_pick_box().'<br />    &Apache::lonhtmlcommon::end_pick_box().'<br />
   
 <input name="command" value="scantronupload_save" type="hidden" />  <input name="command" value="scantronupload_save" type="hidden" />
 <input type="button" onClick="javascript:checkUpload(this.form);" value="'.&mt('Upload Scantron Data').'" />  <input type="button" onClick="javascript:checkUpload(this.form);" value="'.&mt('Upload Bubblesheet Data').'" />
 </form>  </form>
 ');  ');
     return '';      return '';
Line 7777  sub scantron_upload_scantron_data_save { Line 7778  sub scantron_upload_scantron_data_save {
     if (!&Apache::lonnet::allowed('usc',$env{'form.domainid'}) &&      if (!&Apache::lonnet::allowed('usc',$env{'form.domainid'}) &&
  !&Apache::lonnet::allowed('usc',   !&Apache::lonnet::allowed('usc',
     $env{'form.domainid'}.'_'.$env{'form.courseid'})) {      $env{'form.domainid'}.'_'.$env{'form.courseid'})) {
  $r->print(&mt("You are not allowed to upload Scantron data to the requested course.")."<br />");   $r->print(&mt("You are not allowed to upload bubblesheet data to the requested course.")."<br />");
  if ($symb) {   if ($symb) {
     $r->print(&show_grading_menu_form($symb));      $r->print(&show_grading_menu_form($symb));
  } else {   } else {
Line 7980  sub checkscantron_results { Line 7981  sub checkscantron_results {
     my %completedstudents;      my %completedstudents;
   
     my $count=&Apache::grades::get_todo_count($scanlines,$scan_data);      my $count=&Apache::grades::get_todo_count($scanlines,$scan_data);
     my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Scantron/Submissions Comparison Status',      my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r,'Bubblesheet/Submissions Comparison Status',
                                     'Progress of Scantron Data/Submission Records Comparison',$count,                                      'Progress of Bubblesheet Data/Submission Records Comparison',$count,
                                     'inline',undef,'checkscantron');                                      'inline',undef,'checkscantron');
     my ($username,$domain,$started);      my ($username,$domain,$started);
   
Line 8058  sub checkscantron_results { Line 8059  sub checkscantron_results {
                 if ($scandata{$pid} eq $record{$pid}) {                  if ($scandata{$pid} eq $record{$pid}) {
                     my $css_class = ($passed % 2)?'LC_odd_row':'LC_even_row';                      my $css_class = ($passed % 2)?'LC_odd_row':'LC_even_row';
                     $okstudents .= '<tr class="'.$css_class.'">'.                      $okstudents .= '<tr class="'.$css_class.'">'.
 '<td>'.&mt('Scantron').'</td><td>'.$showscandata.'</td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n".  '<td>'.&mt('Bubblesheet').'</td><td>'.$showscandata.'</td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n".
 '</tr>'."\n".  '</tr>'."\n".
 '<tr class="'.$css_class.'">'."\n".  '<tr class="'.$css_class.'">'."\n".
 '<td>Submissions</td><td>'.$showrecord.'</td></tr>'."\n";  '<td>Submissions</td><td>'.$showrecord.'</td></tr>'."\n";
                     $passed ++;                      $passed ++;
                 } else {                  } else {
                     my $css_class = ($failed % 2)?'LC_odd_row':'LC_even_row';                      my $css_class = ($failed % 2)?'LC_odd_row':'LC_even_row';
                     $badstudents .= '<tr class="'.$css_class.'"><td>'.&mt('Scantron').'</td><td><span class="LC_nobreak">'.$scandata{$pid}.'</span></td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n".                      $badstudents .= '<tr class="'.$css_class.'"><td>'.&mt('Bubblesheet').'</td><td><span class="LC_nobreak">'.$scandata{$pid}.'</span></td><td rowspan="2">'.$last.'</td><td rowspan="2">'.$pid.'</td>'."\n".
 '</tr>'."\n".  '</tr>'."\n".
 '<tr class="'.$css_class.'">'."\n".  '<tr class="'.$css_class.'">'."\n".
 '<td>Submissions</td><td><span class="LC_nobreak">'.$record{$pid}.'</span></td>'."\n".  '<td>Submissions</td><td><span class="LC_nobreak">'.$record{$pid}.'</span></td>'."\n".
Line 8278  sub grading_menu { Line 8279  sub grading_menu {
                   'saveState'=>"",                    'saveState'=>"",
                   'gradingMenu'=>1,                    'gradingMenu'=>1,
                   'showgrading'=>"yes");                    'showgrading'=>"yes");
           my $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
     my $url1 = &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';      $fields{'command'} = 'csvform';
     my $url2 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);      $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';      $fields{'command'} = 'processclicker';
     my $url3 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);      $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';      $fields{'command'} = 'scantron_selectphase';
     my $url4 = &Apache::lonhtmlcommon::build_url('grades/',\%fields);      $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
           push(@menu, { url => $url,
     my @menu = ({ categorytitle=>'Course Grading',                     name => &mt('Grade/Manage/Review Bubblesheets'),
             items =>[                     short_description =>
                         { linktext => 'Manual Grading/View Submissions',              &mt('Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.')});
                     url => $url1,      $fields{'command'} = 'verify';
                     permission => 'F',      $url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);
                     icon => 'edit-find-replace.png',      push(@menu, { url => "",
                     linktitle => 'Start the process of hand grading submissions.'                     name => &mt('Verify Receipt'),
                         },                     short_description =>
                    { linktext => 'Upload Scores',              &mt('')});
                     url => $url2,  
                     permission => 'F',  
                     icon => 'uploadscores.png',  
                     linktitle => 'Specify a file containing the class scores for current resource.'  
                    },  
                    { linktext => 'Process Clicker',  
                     url => $url3,  
                     permission => 'F',  
                     icon => 'addClickerInfoFile.png',  
                     linktitle => 'Specify a file containing the clicker information for this resource.'  
                    },  
                    { linktext => 'Grade/Manage/Review Scantron Forms',  
                     url => $url4,  
                     permission => 'F',  
                     icon => 'stat.png',  
                     linktitle => 'Grade scantron exams, upload/download scantron data files, and review previously graded scantron exams.'  
                    }  
                     ]  
             });  
   
     #$fields{'command'} = 'verify';  
     #$url = &Apache::lonhtmlcommon::build_url('grades/',\%fields);  
     #  
     # Create the menu      # Create the menu
     my $Str;      my $Str;
     # $Str .= '<h2>'.&mt('Please select a grading task').'</h2>';      # $Str .= '<h2>'.&mt('Please select a grading task').'</h2>';
Line 8333  sub grading_menu { Line 8320  sub grading_menu {
  '<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";
       foreach my $menudata (@menu) {
     $Str .= Apache::lonhtmlcommon::generate_menu(@menu);          if ($menudata->{'name'} ne &mt('Verify Receipt')) {
     #$menudata->{'jscript'}              $Str .='    <h3><a '.
     $Str .='<hr /><input type="button" value="'.&mt('Verify Receipt').'" '.                  $menudata->{'jscript'}.
         ' onClick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '.                  ' href="'.
         ' /> '.                  $menudata->{'url'}.'" >'.
         &Apache::lonnet::recprefix($env{'request.course.id'}).                  $menudata->{'name'}."</a></h3>\n";
         '-<input type="text" name="receipt" size="4" onChange="javascript:checkReceiptNo(this.form,\'OK\')" />';          } else {
               $Str .='<hr /><input type="button" value="'.&mt('Verify Receipt').'" '.
                   $menudata->{'jscript'}.
                   ' onClick="javascript:checkChoice(document.forms.gradingMenu,\'5\',\'verify\')" '.
                   ' /> '.
                   &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 .="</form>\n";      $Str .="</form>\n";
     my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box.");      my $receiptalert = &mt("Please enter a receipt number given by a student in the receipt box.");
     $request->print(<<GRADINGMENUJS);      $request->print(<<GRADINGMENUJS);
Line 8458  GRADINGMENUJS Line 8454  GRADINGMENUJS
  '<input type="hidden" name="showgrading" value="yes" />'."\n";   '<input type="hidden" name="showgrading" value="yes" />'."\n";
   
     $result.='      $result.='
 <h2>      <div class="LC_grade_select_mode">
   '.&mt('Grade Current Resource').'        <div class="LC_grade_select_mode_current">
 </h2>          <h2>
 <div>            '.&mt('Grade Current Resource').'
   '.$table.'          </h2>
 </div>          <div class="LC_grade_select_mode_body">
             <div class="LC_grades_resource_info">
 <div class="LC_columnSection">             '.$table.'
               </div>
     <fieldset>            <div class="LC_grade_select_mode_selector">
       <legend>               <div class="LC_grade_select_mode_selector_header">
        '.&mt('Sections').'                  '.&mt('Sections').'
       </legend>               </div>
       <select name="section" multiple="multiple" size="5">'."\n";               <div class="LC_grade_select_mode_selector_body">
     $result.= $selsec;                 <select name="section" multiple="multiple" size="5">'."\n";
       if (ref($sections)) {
           foreach my $section (sort(@$sections)) {
               $result.='<option value="'.$section.'" '.
                   ($saveSec eq $section ? 'selected="selected"':'').'>'.$section.'</option>'."\n";
           }
       }
     $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.='      $result.='
     </fieldset>               </div>
               </div>
     <fieldset>            <div class="LC_grade_select_mode_selector">
       <legend>               <div class="LC_grade_select_mode_selector_header">
         '.&mt('Groups').'                  '.&mt('Groups').'
       </legend>               </div>
       '.&Apache::lonstatistics::GroupSelect('group','multiple',5).'               <div class="LC_grade_select_mode_selector_body">
     </fieldset>                  '.&Apache::lonstatistics::GroupSelect('group','multiple',5).'
                  </div>
     <fieldset>            </div>
       <legend>            <div class="LC_grade_select_mode_selector">
         '.&mt('Access Status').'               <div class="LC_grade_select_mode_selector_header">
       </legend>                  '.&mt('Access Status').'
       '.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').'               </div>
     </fieldset>               <div class="LC_grade_select_mode_selector_body">
                     '.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,5,undef,'mult').'
     <fieldset>               </div>
       <legend>            </div>
         '.&mt('Submission Status').'            <div class="LC_grade_select_mode_selector">
       </legend>               <div class="LC_grade_select_mode_selector_header">
       <select name="submitonly" size="5">                  '.&mt('Submission Status').'
          <option value="yes" '.      ($saveSub eq 'yes'       ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option>               </div>
          <option value="queued" '.   ($saveSub eq 'queued'    ? 'selected="selected"' : '').'>'.&mt('in grading queue').'</option>               <div class="LC_grade_select_mode_selector_body">
          <option value="graded" '.   ($saveSub eq 'graded'    ? 'selected="selected"' : '').'>'.&mt('with ungraded submissions').'</option>                 <select name="submitonly" size="5">
          <option value="incorrect" '.($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option>                   <option value="yes" '.      ($saveSub eq 'yes'       ? 'selected="selected"' : '').'>'.&mt('with submissions').'</option>
                    <option value="queued" '.   ($saveSub eq 'queued'    ? 'selected="selected"' : '').'>'.&mt('in grading queue').'</option>
                    <option value="graded" '.   ($saveSub eq 'graded'    ? 'selected="selected"' : '').'>'.&mt('with ungraded submissions').'</option>
                    <option value="incorrect" '.($saveSub eq 'incorrect' ? 'selected="selected"' : '').'>'.&mt('with incorrect submissions').'</option>
                  <option value="all" '.      ($saveSub eq 'all'       ? 'selected="selected"' : '').'>'.&mt('with any status').'</option>                   <option value="all" '.      ($saveSub eq 'all'       ? 'selected="selected"' : '').'>'.&mt('with any status').'</option>
       </select>                 </select>
     </fieldset>               </div>
               </div>
 </div>            <div class="LC_grade_select_mode_type_body">
               <div class="LC_grade_select_mode_type">
 <br />  
           <div>  
             <div>  
               <label>                <label>
                 <input type="radio" name="radioChoice" value="submission" '.                  <input type="radio" name="radioChoice" value="submission" '.
                   ($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '.                    ($saveCmd eq 'submission' ? 'checked="checked"' : '').' /> '.
              &mt('Select individual students to grade and view submissions.').'               &mt('Select individual students to grade and view submissions.').'
       </label>                 </label>
             </div>              </div>
             <div>              <div class="LC_grade_select_mode_type">
       <label>                <label>
                 <input type="radio" name="radioChoice" value="viewgrades" '.                  <input type="radio" name="radioChoice" value="viewgrades" '.
                   ($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '.                    ($saveCmd eq 'viewgrades' ? 'checked="checked"' : '').' /> '.
                     &mt('Grade all selected students in a grading table.').'                      &mt('Grade all selected students in a grading table.').'
               </label>                </label>
             </div>              </div>
             <div>              <div class="LC_grade_select_mode_type">
       <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' &rarr;" />                <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next-&gt;').'" />
             </div>              </div>
           </div>            </div>
           </div>
         </div>
         <div class="LC_grade_select_mode_page">
         <h2>          <h2>
          '.&mt('Grade Complete Folder for One Student').'           '.&mt('Grade Complete Folder for One Student').'
         </h2>          </h2>
         <div>          <div class="LC_grades_select_mode_body">
             <div>            <div class="LC_grade_select_mode_type_body">
               <div class="LC_grade_select_mode_type">
               <label>                <label>
                 <input type="radio" name="radioChoice" value="pickStudentPage" '.                  <input type="radio" name="radioChoice" value="pickStudentPage" '.
   ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.            ($saveCmd eq 'pickStudentPage' ? 'checked="checked"' : '').' /> '.
   &mt('The <b>complete</b> page/sequence/folder: For one student').'    &mt('The <b>complete</b> page/sequence/folder: For one student').'
               </label>                </label>
             </div>              </div>
             <div>              <div class="LC_grade_select_mode_type">
       <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next').' &rarr;" />                <input type="button" onClick="javascript:checkChoice(this.form,\'2\');" value="'.&mt('Next-&gt;').'" />
             </div>              </div>
             </div>
         </div>          </div>
         </div>
       </div>
   </form>';    </form>';
     $result .= &show_grading_menu_form($symb);      $result .= &show_grading_menu_form($symb);
     return $result;      return $result;
Line 9043  ENDHEADER Line 9050  ENDHEADER
           my $sum=0;            my $sum=0;
           my $realnumber=$number;            my $realnumber=$number;
           for (my $i=0;$i<$number;$i++) {            for (my $i=0;$i<$number;$i++) {
              if ($answer[$i]) {               if  ($correct[$i] eq '-') {
                   $realnumber--;
                } elsif ($answer[$i]) {
                 if ($gradingmechanism eq 'attendance') {                  if ($gradingmechanism eq 'attendance') {
                    $sum+=$pcorrect;                     $sum+=$pcorrect;
                 } elsif ($answer[$i] eq '*') {                  } elsif ($correct[$i] eq '*') {
                    $sum+=$pcorrect;                     $sum+=$pcorrect;
                 } elsif ($answer[$i] eq '-') {  
                    $realnumber--;  
                 } else {                  } else {
                    if ($answer[$i] eq $correct[$i]) {                     if ($answer[$i] eq $correct[$i]) {
                       $sum+=$pcorrect;                        $sum+=$pcorrect;

Removed from v.1.574  
changed lines
  Added in v.1.574.2.6


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