Diff for /loncom/interface/statistics/lonproblemstatistics.pm between versions 1.7 and 1.10

version 1.7, 2002/07/30 22:09:01 version 1.10, 2002/08/02 12:41:20
Line 56  sub BuildProblemStatisticsPage { Line 56  sub BuildProblemStatisticsPage {
     $Ptr .= '<table border="0"><tbody>';      $Ptr .= '<table border="0"><tbody>';
     $Ptr .= '<tr><td align="right"><b>Select Map</b></td>'."\n";      $Ptr .= '<tr><td align="right"><b>Select Map</b></td>'."\n";
     $Ptr .= '<td align="left">';      $Ptr .= '<td align="left">';
     $Ptr .= &Apache::lonhtmlcommon::MapOptions(\%cache, 'ProblemStatistics');      $Ptr .= &Apache::lonhtmlcommon::MapOptions(\%cache, 'ProblemStatistics',
                                                  'Statistics');
       $Ptr .= '</td></tr>'."\n";
       $Ptr .= '<tr><td align="right"><b>Sorting Type:</b></td>'."\n";
       $Ptr .= '<td align="left">'."\n";
       $Ptr .= &Apache::lonhtmlcommon::AscendOrderOptions(
                                               $cache{'ProblemStatisticsAscend'}, 
                                               'ProblemStatistics',
                                               'Statistics');
     $Ptr .= '</td></tr>'."\n";      $Ptr .= '</td></tr>'."\n";
     $Ptr .= &AscendOrderOptions($cache{'Ascend'});  
     $Ptr .= &ProblemStatisticsButtons($cache{'DisplayFormat'});      $Ptr .= &ProblemStatisticsButtons($cache{'DisplayFormat'});
     $Ptr .= '</table>';      $Ptr .= '</table>';
     $Ptr .= &ProblemStatisticsLegend();      $Ptr .= &ProblemStatisticsLegend();
Line 166  sub ExtractStudentData { Line 173  sub ExtractStudentData {
   
     foreach my $sequence (split(':', $cache->{'orderedSequences'})) {      foreach my $sequence (split(':', $cache->{'orderedSequences'})) {
  my $tempProblemOrder=100;   my $tempProblemOrder=100;
  $tempSequenceOrder++;          if($cache->{'ProblemStatisticsMaps'} ne 'All Maps'  &&
 #        if($cache->{'ProblemStatisticsMap'} ne 'All Maps'  &&             $cache->{'ProblemStatisticsMaps'} ne $cache->{$sequence.':title'}) {
 #           $cache->{'ProblemStatisticsMap'} ne $cache->{$sequence.':title'}) {  
 #    $r->print("<br>sequences=$cache->{'orderedSequences'}");  #    $r->print("<br>sequences=$cache->{'orderedSequences'}");
 #    $r->print("<br>".$cache->{$sequence.':title'});  #    $r->print("<br>".$cache->{$sequence.':title'});
 #            next;              next;
 #        }          }
    $tempSequenceOrder++;
   
         #$discrim .= '&';          #$discrim .= '&';
         foreach my $problemID (split(':', $cache->{$sequence.':problems'})) {          foreach my $problemID (split(':', $cache->{$sequence.':problems'})) {
Line 383  sub BuildStatisticsTable { Line 390  sub BuildStatisticsTable {
     my $cIdx=0;      my $cIdx=0;
   
     foreach my $sequence (split(':', $cache->{'orderedSequences'})) {      foreach my $sequence (split(':', $cache->{'orderedSequences'})) {
           if($cache->{'ProblemStatisticsMaps'} ne 'All Maps'  &&
         &CreateProblemStatisticsTableHeading(1,$cache->{$sequence.':source'},             $cache->{'ProblemStatisticsMaps'} ne $cache->{$sequence.':title'}) {
               next;
           }
           &CreateProblemStatisticsTableHeading($cache->{'DisplayFormat'}, 
                                                $cache->{$sequence.':source'},
                                              $cache->{$sequence.':title'},                                                $cache->{$sequence.':title'}, 
                                              $headings,$r);                                               $headings,$r);
  my ($tar,$Tries,$Wrongs,$Code,$Disc)=split(/\&/,   my ($tar,$Tries,$Wrongs,$Code,$Disc)=split(/\&/,
Line 427  sub BuildStatisticsTable { Line 438  sub BuildStatisticsTable {
     $Temp = '<a href="'.$cache->{$ResId.':source'}.      $Temp = '<a href="'.$cache->{$ResId.':source'}.
                 '" target="_blank">'.$cache->{$ResId.':title'}.$Dummy.'</a>';                  '" target="_blank">'.$cache->{$ResId.':title'}.$Dummy.'</a>';
   
     my $res = &Apache::lonnet::declutter($cache->{'src_'.$ResId});      #$r->print('<br>rid='.$ResId);
       #$r->print('<br>src='.$cache->{$ResId.':source'});
       #$r->print('<br>tit='.$cache->{$ResId.':title'});
   
       my $res = &Apache::lonnet::declutter($cache->{$ResId.':source'});
     my $urlres=$res;      my $urlres=$res;
   
     $ResId=~/(\d+)\.(\d+)/;      $ResId=~/(\d+)\.(\d+)/;
Line 435  sub BuildStatisticsTable { Line 450  sub BuildStatisticsTable {
     $urlres=$Map;      $urlres=$Map;
 #######################  #######################
   
 #    $res = '<a href="'.$cache->{'src_'.$ResId}.'">'.$res.'</a>';  #    $res = '<a href="'.$cache->{$ResId.':source'}.'">'.$res.'</a>';
     #$Map = '<a href="'.$Map.'">'.$res.'</a>';      #$Map = '<a href="'.$Map.'">'.$res.'</a>';
   
 #------------------------ Compute the Average of Tries about one problem  #------------------------ Compute the Average of Tries about one problem
Line 579  sub TableRow { Line 594  sub TableRow {
     my($PrOrd,$Temp,$StdNo,$TotalTries,$MxTries,$Avg,$YES,$Override,      my($PrOrd,$Temp,$StdNo,$TotalTries,$MxTries,$Avg,$YES,$Override,
        $Wrng,$DoD,$SD,$Sk,$_D1,$_D2,$DiscNo,$Prob)=split(/\&/,$Str);         $Wrng,$DoD,$SD,$Sk,$_D1,$_D2,$DiscNo,$Prob)=split(/\&/,$Str);
 #    $r->print('<br>'.$Str);  #    $r->print('<br>'.$Str);
     if ($ENV{'form.showcsv'}) {      my $Ptr;
       if($cache->{'DisplayFormat'} eq 'Display CSV Format') {
         my ($ResId,$Dummy)=split(/\*/,$Prob);          my ($ResId,$Dummy)=split(/\*/,$Prob);
         my $Ptr =  "\n".'<br>'.          $Ptr="\n".'<br>'.
                "\n".'"'.($RealIdx+1).'",'.               "\n".'"'.($RealIdx+1).'",'.
                "\n".'"'.$cache->{'title_'.$ResId}.$Dummy.'",'.               "\n".'"'.$cache->{$ResId.':title'}.$Dummy.'",'.
                "\n".'"'.$cache->{'src_'.$ResId}.'",'.               "\n".'"'.$cache->{$ResId.':source'}.'",'.
                "\n".'"'.$StdNo.'",'.               "\n".'"'.$StdNo.'",'.
                "\n".'"'.$TotalTries.'",'.               "\n".'"'.$TotalTries.'",'.
                "\n".'"'.$MxTries.'",'.               "\n".'"'.$MxTries.'",'.
                "\n".'"'.$Avg.'",'.               "\n".'"'.$Avg.'",'.
                "\n".'"'.$YES.'",'.               "\n".'"'.$YES.'",'.
                "\n".'"'.$Override.'",'.               "\n".'"'.$Override.'",'.
                "\n".'"'.$Wrng.'",'.               "\n".'"'.$Wrng.'",'.
                "\n".'"'.$DoD.'",'.               "\n".'"'.$DoD.'",'.
                "\n".'"'.$SD.'",'.               "\n".'"'.$SD.'",'.
                "\n".'"'.$Sk.'",'.               "\n".'"'.$Sk.'",'.
                "\n".'"'.$_D1.'",'.               "\n".'"'.$_D1.'",'.
        "\n".'"'.$_D2.'"'.       "\n".'"'.$_D2.'"'.
        "\n".'"'.$DiscNo.'"';       "\n".'"'.$DiscNo.'"';
   
         $r->print("\n".$Ptr);          $r->print("\n".$Ptr);
     }      } else {
     else{          $Ptr="\n".'<tr>'.
         my $Ptr =  "\n".'<tr>'.               "\n".'<td>'.($RealIdx+1).'</td>'.
                "\n".'<td>'.($RealIdx+1).'</td>'.            #  "\n".'<td>'.$PrOrd.$Temp.'</td>'.
           #     "\n".'<td>'.$PrOrd.$Temp.'</td>'.               "\n".'<td>'.$Temp.'</td>'.
                "\n".'<td>'.$Temp.'</td>'.               "\n".'<td bgcolor='.$color->{"yellow"}.'> '.$StdNo.'</td>'.
                "\n".'<td bgcolor='.$color->{"yellow"}.'> '.$StdNo.'</td>'.               "\n".'<td bgcolor='.$color->{"yellow"}.'>'.$TotalTries.'</td>'.
                "\n".'<td bgcolor='.$color->{"yellow"}.'>'.$TotalTries.'</td>'.               "\n".'<td bgcolor='.$color->{"yellow"}.'>'.$MxTries.'</td>'.
                "\n".'<td bgcolor='.$color->{"yellow"}.'>'.$MxTries.'</td>'.               "\n".'<td bgcolor='.$color->{"gb"}.'>'.$Avg.'</td>'.
                "\n".'<td bgcolor='.$color->{"gb"}.'>'.$Avg.'</td>'.               "\n".'<td bgcolor='.$color->{"gb"}.'> '.$YES.'</td>'.
                "\n".'<td bgcolor='.$color->{"gb"}.'> '.$YES.'</td>'.               "\n".'<td bgcolor='.$color->{"gb"}.'> '.$Override.'</td>'.
                "\n".'<td bgcolor='.$color->{"gb"}.'> '.$Override.'</td>'.               "\n".'<td bgcolor='.$color->{"red"}.'> '.$Wrng.'</td>'.
                "\n".'<td bgcolor='.$color->{"red"}.'> '.$Wrng.'</td>'.               "\n".'<td bgcolor='.$color->{"red"}.'> '.$DoD.'</td>'.
                "\n".'<td bgcolor='.$color->{"red"}.'> '.$DoD.'</td>'.               "\n".'<td bgcolor='.$color->{"green"}.'> '.$SD.'</td>'.
                "\n".'<td bgcolor='.$color->{"green"}.'> '.$SD.'</td>'.               "\n".'<td bgcolor='.$color->{"green"}.'> '.$Sk.'</td>'.
                "\n".'<td bgcolor='.$color->{"green"}.'> '.$Sk.'</td>'.               "\n".'<td bgcolor='.$color->{"purple"}.'> '.$_D1.'</td>'.
                "\n".'<td bgcolor='.$color->{"purple"}.'> '.$_D1.'</td>'.       "\n".'<td bgcolor='.$color->{"purple"}.'> '.$_D2.'</td>'.
        "\n".'<td bgcolor='.$color->{"purple"}.'> '.$_D2.'</td>'.               "\n".'<td bgcolor='.$color->{"yellow"}.'> '.$DiscNo.'</td>';
                "\n".'<td bgcolor='.$color->{"yellow"}.'> '.$DiscNo.'</td>';  
         $r->print("\n".$Ptr.'</tr>' );          $r->print("\n".$Ptr.'</tr>' );
     }      }
 #    $GraphDat->{$RealIdx}=$DoD.':'.$Wrng;  #    $GraphDat->{$RealIdx}=$DoD.':'.$Wrng;
Line 646  sub setbgcolor { Line 661  sub setbgcolor {
     return \%color;      return \%color;
 }  }
   
   
 sub StatusOptions {  
     my ($cache)=@_;  
   
     my $Status = $cache->{'Status'};  
     my $OpSel1 = '';  
     my $OpSel2 = '';  
     my $OpSel3 = '';  
   
     if($Status eq 'Any')         { $OpSel3 = ' selected'; }  
     elsif($Status eq 'Expired' ) { $OpSel2 = ' selected'; }  
     else                         { $OpSel1 = ' selected'; }  
   
     my $Ptr = '';  
     $Ptr .= '<tr><td align="right"><b>Student Status:</b></td>'."\n";  
     $Ptr .= '<td align="left"><select name="Status">';  
     $Ptr .= '<option'.$OpSel1.'>Active</option>'."\n";  
     $Ptr .= '<option'.$OpSel2.'>Expired</option>'."\n";  
     $Ptr .= '<option'.$OpSel3.'>Any</option>'."\n";  
     $Ptr .= '</select></td></tr>'."\n";  
   
     return $Ptr;  
 }  
   
 sub AscendOrderOptions {  
     my ($order)=@_;  
   
     my $OpSel1 = '';  
     my $OpSel2 = '';  
   
     if($order eq 'Ascending') {  
         $OpSel1 = ' selected';  
     } else {  
         $OpSel2 = ' selected';  
     }  
   
     my $Ptr = '';  
     $Ptr .= '<tr><td align="right"><b>Sorting Type:</b></td>'."\n";  
     $Ptr .= '<td align="left"><select name="Ascend">'."\n";  
     $Ptr .= '<option'.$OpSel1.'>Ascending</option>'."\n".  
     '<option'.$OpSel2.'>Descending</option>'."\n";  
     $Ptr .= '</select></td></tr>'."\n";  
   
     return $Ptr;  
 }  
   
 sub ProblemStatisticsButtons {  sub ProblemStatisticsButtons {
     my ($displayFormat)=@_;      my ($displayFormat)=@_;
   
     my $Ptr = '<tr><td></td><td align="left">';      my $Ptr = '<tr><td></td><td align="left">';
     $Ptr .= '<input type=submit name="ProblemStatisticsRecalculate" ';  
     $Ptr .= 'value="Recalculate Statistics"/>'."\n";  
     $Ptr .= '&nbsp;&nbsp;&nbsp;';  
     $Ptr .= '<input type="submit" name="DoDiffGraph" ';      $Ptr .= '<input type="submit" name="DoDiffGraph" ';
     $Ptr .= 'value="DoDiff Graph" />'."\n";      $Ptr .= 'value="DoDiff Graph" />'."\n";
     $Ptr .= '&nbsp;&nbsp;&nbsp;';      $Ptr .= '&nbsp;&nbsp;&nbsp;';
Line 707  sub ProblemStatisticsButtons { Line 673  sub ProblemStatisticsButtons {
     $Ptr .= '&nbsp;&nbsp;&nbsp;';      $Ptr .= '&nbsp;&nbsp;&nbsp;';
     $Ptr .= '<input type="submit" name="DisplayCSVFormat" ';      $Ptr .= '<input type="submit" name="DisplayCSVFormat" ';
     if($displayFormat eq 'Display CSV Format') {      if($displayFormat eq 'Display CSV Format') {
         $Ptr .= 'value="Display CSV Format" />'."\n";  
     } else {  
         $Ptr .= 'value="Display Table Format" />'."\n";          $Ptr .= 'value="Display Table Format" />'."\n";
       } else {
           $Ptr .= 'value="Display CSV Format" />'."\n";
     }      }
     $Ptr .= '</td></tr>';      $Ptr .= '</td></tr>';
   
Line 842  sub Discriminant { Line 808  sub Discriminant {
     my %DisLow = &ProcessDiscriminant(\@LowList,$r);      my %DisLow = &ProcessDiscriminant(\@LowList,$r);
   
     return (\%DisUp, \%DisLow);      return (\%DisUp, \%DisLow);
 }  }   
   
      
   
 #---- END Problem Statistics Web Page ----------------------------------------  #---- END Problem Statistics Web Page ----------------------------------------
   
Line 856  sub BuildDiffGraph { Line 820  sub BuildDiffGraph {
     my ($r)=@_;      my ($r)=@_;
   
     my $graphData = &GetGraphData('DiffGraph', $r);      my $graphData = &GetGraphData('DiffGraph', $r);
     return '<IMG src="/cgi-bin/graph.gif?'.$graphData.'" />';      $r->print('<IMG src="/cgi-bin/graph.gif?'.$graphData.'" />');
   
       return;
 }  }
   
 sub BuildWrongGraph {  sub BuildWrongGraph {
     my ($r)=@_;      my ($r)=@_;
   
     my $graphData = &GetGraphData('WrongGraph', $r);      my $graphData = &GetGraphData('WrongGraph', $r);
     return '<IMG src="/cgi-bin/graph.gif?'.$graphData.'" />';      $r->print('<IMG src="/cgi-bin/graph.gif?'.$graphData.'" />');
   
       return;
 }  }
   
   

Removed from v.1.7  
changed lines
  Added in v.1.10


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