version 1.7, 2002/07/30 22:09:01
|
version 1.11, 2002/08/02 21:04:46
|
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 500 sub BuildStatisticsTable {
|
Line 515 sub BuildStatisticsTable {
|
$YES.'&'.$Override.'&'.$Wrng.'&'.$DoD.'&'. |
$YES.'&'.$Override.'&'.$Wrng.'&'.$DoD.'&'. |
$SD.'&'.$Sk.'&'.$_D1.'&'.$_D2.'&'. |
$SD.'&'.$Sk.'&'.$_D1.'&'.$_D2.'&'. |
$DiscNo.'&'.$Prob; |
$DiscNo.'&'.$Prob; |
##8888 $CachData{($p_count-1)}=$join; |
|
|
#####{$sequence.'@'.$pOrd} |
|
# $cache->{'tableCache:'.$p_count-1}=$join; |
|
|
#6666666 |
#6666666 |
# $r->print('<br>'.$out.'&'.$DoD); |
# $r->print('<br>'.$out.'&'.$DoD); |
Line 579 sub TableRow {
|
Line 596 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; |
# $cache->{'graph_gif:'.$RealIdx}=$DoD.':'.$Wrng; |
} |
} |
|
|
|
|
Line 646 sub setbgcolor {
|
Line 663 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 .= ' '; |
|
$Ptr .= '<input type="submit" name="DoDiffGraph" '; |
$Ptr .= '<input type="submit" name="DoDiffGraph" '; |
$Ptr .= 'value="DoDiff Graph" />'."\n"; |
$Ptr .= 'value="DoDiff Graph" />'."\n"; |
$Ptr .= ' '; |
$Ptr .= ' '; |
Line 707 sub ProblemStatisticsButtons {
|
Line 675 sub ProblemStatisticsButtons {
|
$Ptr .= ' '; |
$Ptr .= ' '; |
$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 810 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 822 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; |
} |
} |
|
|
|
|