Diff for /loncom/interface/Attic/lonchart.pm between versions 1.49 and 1.50

version 1.49, 2002/07/01 21:12:06 version 1.50, 2002/07/02 15:13:06
Line 60  my $jr; Line 60  my $jr;
   
 sub FormatStudentInformation {  sub FormatStudentInformation {
     my ($cache,$name,$studentInformation,$reselected,$spacePadding)=@_;      my ($cache,$name,$studentInformation,$reselected,$spacePadding)=@_;
     my $Str='<pre>';      my $Str='';
   
     for(my $index=0; $index<(scalar @$studentInformation); $index++) {      for(my $index=0; $index<(scalar @$studentInformation); $index++) {
         if(!&ShouldShowColumn($reselected, 'heading', $index)) {          if(!&ShouldShowColumn($reselected, 'heading', $index)) {
Line 95  sub FormatStudentData { Line 95  sub FormatStudentData {
   
     # Handle errors      # Handle errors
     if($CacheData{$name.':error'} =~ /environment/) {      if($CacheData{$name.':error'} =~ /environment/) {
           $Str .= '<br>';
         untie(%CacheData);          untie(%CacheData);
         $Str .= '</pre>';  
         return $Str;          return $Str;
 # my $errorMessage = $CacheData{$name.':error'};  
 # return '<td>'.$sname.'</td><td>'.$sdom.  
 #    '</td><td><font color="#000088">'.$errorMessage.'</font></td>';  
     }      }
   
     if($CacheData{$name.':error'} =~ /course/) {      if($CacheData{$name.':error'} =~ /course/) {
           $Str .= '<br>';
         untie(%CacheData);          untie(%CacheData);
         $Str .= '</pre>';          return $Str;
  return $Str;  
 # my $errorMessage = 'May have no course data or '.  
 #                   $CacheData{$name.':error'};  
 # return '<td>'.$sname.'</td><td>'.$sdom.  
 #    '</td><td><font color="#000088">'.$errorMessage.'</font></td>';  
     }      }
   
     # Handle problem data ------------------------------------------------      # Handle problem data ------------------------------------------------
Line 216  sub FormatStudentData { Line 209  sub FormatStudentData {
     }      }
   
     $Str .= '<font color="#000088">'.$problemsSolved.      $Str .= '<font color="#000088">'.$problemsSolved.
     ' / '.$totalProblems.'</font></pre>';      ' / '.$totalProblems.'</font><br>';
   
     untie(%CacheData);      untie(%CacheData);
     return $Str;      return $Str;
Line 265  sub CreateColumnSelectionBox { Line 258  sub CreateColumnSelectionBox {
     my ($CacheData,$studentInformation,$headings,$reselected,$spacePadding)=@_;      my ($CacheData,$studentInformation,$headings,$reselected,$spacePadding)=@_;
   
     my $missing=0;      my $missing=0;
     my $notThere='<br><br><b>Select column to view:</b><br><br>';      my $notThere='<tr><td align="right"><b>Select column to view:</b>';
     my $name;      my $name;
     $notThere .= '&nbsp;&nbsp;&nbsp';      $notThere .= '<td align="left">';
     $notThere .= '<select name="reselect" size="4" multiple="true">'."\n";      $notThere .= '<select name="reselect" size="4" multiple="true">'."\n";
   
     for(my $index=0; $index<(scalar @$headings); $index++) {      for(my $index=0; $index<(scalar @$headings); $index++) {
Line 291  sub CreateColumnSelectionBox { Line 284  sub CreateColumnSelectionBox {
     }      }
   
     if($missing) {      if($missing) {
         $notThere .= '</select><br><br>';          $notThere .= '</select>';
     } else {      } else {
         $notThere='';          $notThere='<tr><td>';
     }      }
   
     return $notThere;      return $notThere.'</td></tr></tbody></table>';
 }  }
   
 sub CreateColumnSelectors {  sub CreateColumnSelectors {
Line 356  sub CreateForm { Line 349  sub CreateForm {
     elsif ($Status eq 'Expired' ) { $OpSel2 = 'selected'; }      elsif ($Status eq 'Expired' ) { $OpSel2 = 'selected'; }
     else { $OpSel1 = 'selected'; }      else { $OpSel1 = 'selected'; }
   
     my $Ptr = '<form name="stat" method="post" action="/adm/chart" >'."\n";      my $Ptr .= '<form name="stat" method="post" action="/adm/chart" >'."\n";
     $Ptr .= '<input type="submit" name="sort" value="Recalculate Chart"/>';      $Ptr .= '<table border="0"><tbody>';
     $Ptr .= "\n";      $Ptr .= '<tr><td align="right">';
     $Ptr .= '&nbsp;&nbsp;&nbsp;';      $Ptr .= '</td><td align="left">';
     $Ptr .= '<input type="submit" name="refresh" value="Refresh Chart"/>';      $Ptr .= '<input type="submit" name="sort" ';
     $Ptr .= "\n";      $Ptr .= 'value="Recalculate Chart"/>'."\n";
     $Ptr .= '<br><br>';  
     $Ptr .= '<b> Sort by: &nbsp; </b>'."\n";  
     $Ptr .= '&nbsp;&nbsp;&nbsp;';      $Ptr .= '&nbsp;&nbsp;&nbsp;';
       $Ptr .= '<input type="submit" name="refresh" ';
       $Ptr .= 'value="Refresh Chart"/></td>'."\n";
       $Ptr .= '</tr><tr><td align="right">';
       $Ptr .= '<b> Sort by: </b>'."\n";
       $Ptr .= '</td><td align="left">';
     $Ptr .= '<input type="submit" name="sort" value="User Name" />'."\n";      $Ptr .= '<input type="submit" name="sort" value="User Name" />'."\n";
     $Ptr .= '&nbsp;&nbsp;&nbsp;';      $Ptr .= '&nbsp;&nbsp;&nbsp;';
     $Ptr .= '<input type="submit" name="sort" value="Last Name" />'."\n";      $Ptr .= '<input type="submit" name="sort" value="Last Name" />'."\n";
     $Ptr .= '&nbsp;&nbsp;&nbsp;';      $Ptr .= '&nbsp;&nbsp;&nbsp;';
     $Ptr .= '<input type="submit" name="sort" value="Section"/>'."\n";      $Ptr .= '<input type="submit" name="sort" value="Section"/>'."\n";
     $Ptr .= '<br><br>';      $Ptr .= '</td></tr><tr><td align="right">';
     $Ptr .= '<b> Student Status: &nbsp; </b>'."\n".      $Ptr .= '<b> Student Status: &nbsp; </b>'."\n".
             '&nbsp;&nbsp;&nbsp;'.              '</td><td align="left">'.
             '<select name="status">'.               '<select name="status">'. 
             '<option '.$OpSel1.' >Active</option>'."\n".              '<option '.$OpSel1.' >Active</option>'."\n".
             '<option '.$OpSel2.' >Expired</option>'."\n".              '<option '.$OpSel2.' >Expired</option>'."\n".
     '<option '.$OpSel3.' >Any</option> </select> '."\n";      '<option '.$OpSel3.' >Any</option> </select> '."\n";
       $Ptr .= '</td></tr>';
   
     return $Ptr;      return $Ptr;
 }  }
   
 sub CreateLegend {  sub CreateLegend {
     my $Str = '<h1>'.$ENV{'course.'.$ENV{'request.course.id'}.'.description'}.      my $Str = "<p><pre>".
               '</h1><h3>'.localtime().                "1..9: correct by student in 1..9 tries\n".
               "</h3><p><pre>1..9: correct by student in 1..9 tries\n".  
               "   *: correct by student in more than 9 tries\n".                "   *: correct by student in more than 9 tries\n".
       "   +: correct by override\n".        "   +: correct by override\n".
               "   -: incorrect by override\n".                "   -: incorrect by override\n".
       "   .: incorrect attempted\n".        "   .: incorrect attempted\n".
       "   #: ungraded attempted\n".        "   #: ungraded attempted\n".
               "    : not attempted\n".                "    : not attempted\n".
       "   x: excused</pre><p>";         "   x: excused".
                 "</pre><p>"; 
     return $Str;      return $Str;
 }  }
   
Line 403  sub StartDocument { Line 400  sub StartDocument {
     $Str .= '<body bgcolor="#FFFFFF">';      $Str .= '<body bgcolor="#FFFFFF">';
     $Str .= '<script>window.focus();</script>';      $Str .= '<script>window.focus();</script>';
     $Str .= '<img align=right src=/adm/lonIcons/lonlogos.gif>';      $Str .= '<img align=right src=/adm/lonIcons/lonlogos.gif>';
     $Str .= '<h1>Assessment Chart</h1>';      $Str .= '<h1><pre>Assessment Chart'.(' 'x8).localtime();
       $Str .= '</pre></h1>';
       $Str .= '<h1>'.$ENV{'course.'.$ENV{'request.course.id'}.'.description'};
       $Str .= '</h1>';
   #    $Str .= '<h3>'.localtime().'</h3>';
   
     return $Str;      return $Str;
 }  }
Line 955  sub ShouldShowColumn { Line 956  sub ShouldShowColumn {
 sub CheckForStringInArray {  sub CheckForStringInArray {
     my ($inputArray,$checkString)=@_;      my ($inputArray,$checkString)=@_;
     foreach (@$inputArray) {      foreach (@$inputArray) {
 #        $jr->print('a:'.$_.' b:'.$checkString.'<br>');  
         if($_ eq $checkString) {          if($_ eq $checkString) {
             return 1;              return 1;
         }          }
Line 1027  sub BuildChart { Line 1027  sub BuildChart {
     # Sort students and print out table desciptive data      # Sort students and print out table desciptive data
     if(tie(%CacheData,'GDBM_File',$ChartDB,&GDBM_READER,0640)) {      if(tie(%CacheData,'GDBM_File',$ChartDB,&GDBM_READER,0640)) {
         if(!$c->aborted()) { @students=&SortStudents(\@students,\%CacheData); }          if(!$c->aborted()) { @students=&SortStudents(\@students,\%CacheData); }
  if(!$c->aborted()) { $r->print(&CreateLegend()); }          if(!$c->aborted()) { $r->print('<h1>'.(scalar @students).
                                          ' students</h1>'); }
  if(!$c->aborted()) { $r->rflush(); }   if(!$c->aborted()) { $r->rflush(); }
    if(!$c->aborted()) { $r->print(&CreateLegend()); }
  if(!$c->aborted()) { $r->print(&CreateForm()); }   if(!$c->aborted()) { $r->print(&CreateForm()); }
  if(!$c->aborted()) { $r->print(&CreateColumnSelectionBox(   if(!$c->aborted()) { $r->print(&CreateColumnSelectionBox(
                                                        \%CacheData,                                                         \%CacheData,
Line 1036  sub BuildChart { Line 1038  sub BuildChart {
        \@headings,          \@headings, 
                                                        \@reselected,                                                         \@reselected,
                                                        $spacePadding)); }                                                         $spacePadding)); }
         if(!$c->aborted()) { $r->print('<h3>'.(scalar @students).  
                                        ' students</h3>'); }  
  if(!$c->aborted()) { $r->print(&CreateColumnSelectors(   if(!$c->aborted()) { $r->print(&CreateColumnSelectors(
                                                        \%CacheData,                                                         \%CacheData,
                                                        \@studentInformation,                                                          \@studentInformation, 
Line 1059  sub BuildChart { Line 1059  sub BuildChart {
   
     my @updateStudentList = ();      my @updateStudentList = ();
     my $courseData;      my $courseData;
       $r->print('<pre>');
     foreach (@students) {      foreach (@students) {
         if($c->aborted()) {          if($c->aborted()) {
             if(!$isCached &&   
                tie(%CacheData,'GDBM_File',$ChartDB,&GDBM_WRCREAT,0640)) {  
                 $CacheData{'NamesOfStudents'}=join(":::", @updateStudentList);  
 #    $CacheData{'NamesOfStudents'}=  
 #            &Apache::lonnet::arrayref2str(\@updateStudentList);  
                 untie(%CacheData);  
             }  
             last;              last;
         }          }
   
         if(!$isCached) {          if(!$isCached) {
             $courseData=&DownloadStudentCourseInformation($_, $cid);              $courseData=&DownloadStudentCourseInformation($_, $cid);
             if($c->aborted()) { next; }              if($c->aborted()) { last; }
             push(@updateStudentList, $_);              push(@updateStudentList, $_);
             &ExtractStudentData($courseData, $_, $ChartDB);              &ExtractStudentData($courseData, $_, $ChartDB);
         }          }
Line 1083  sub BuildChart { Line 1077  sub BuildChart {
         $r->rflush();          $r->rflush();
     }      }
   
     $r->print('</body></html>');      if(!$isCached && tie(%CacheData,'GDBM_File',$ChartDB,&GDBM_WRCREAT,0640)) {
           $CacheData{'NamesOfStudents'}=join(":::", @updateStudentList);
   #    $CacheData{'NamesOfStudents'}=
   #            &Apache::lonnet::arrayref2str(\@updateStudentList);
           untie(%CacheData);
       }
   
       $r->print('</pre></body></html>');
     $r->rflush();      $r->rflush();
   
     return;      return;

Removed from v.1.49  
changed lines
  Added in v.1.50


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