version 1.4, 2003/01/08 03:27:54
|
version 1.11, 2008/12/12 10:01:30
|
Line 1
|
Line 1
|
# The LearningOnline Network with CAPA |
# The LearningOnline Network with CAPA |
# (Publication Handler |
|
# |
# |
# $Id$ |
# $Id$ |
# |
# |
Line 33 use strict;
|
Line 32 use strict;
|
use Apache::lonhtmlcommon; |
use Apache::lonhtmlcommon; |
use Apache::loncoursedata; |
use Apache::loncoursedata; |
use GDBM_File; |
use GDBM_File; |
|
use lib '/home/httpd/lib/perl/'; |
|
use LONCAPA; |
|
|
|
|
|
|
sub BuildPercentageGraph { |
sub BuildPercentageGraph { |
Line 110 sub CreateInterface {
|
Line 112 sub CreateInterface {
|
$Ptr .= '<td align="left">'."\n"; |
$Ptr .= '<td align="left">'."\n"; |
my @sections = split(':',$cache->{'sectionList'}); |
my @sections = split(':',$cache->{'sectionList'}); |
my @sectionsSelected = split(':',$cache->{'sectionsSelected'}); |
my @sectionsSelected = split(':',$cache->{'sectionsSelected'}); |
$Ptr .= &Apache::lonhtmlcommon::MultipleSectionSelect(\@sections, |
$Ptr .= &Apache::lonstatistics::SectionSelect('Section','multiple',5); |
\@sectionsSelected, |
|
'Statistics'); |
|
$Ptr .= '</td></tr>'."\n"; |
$Ptr .= '</td></tr>'."\n"; |
$Ptr .= '</table>'; |
$Ptr .= '</table>'; |
|
|
Line 193 sub GraphData {
|
Line 193 sub GraphData {
|
|
|
my %percentages; |
my %percentages; |
my $Ptr = ''; |
my $Ptr = ''; |
|
my $totalProblems = 0; |
|
|
foreach(@$students) { |
foreach(@$students) { |
my $totalCorrect = 0; |
my $totalCorrect = 0; |
my $totalProblems = 0; |
$totalProblems = 0; |
|
|
foreach my $sequence (split(':',$cache->{'orderedSequences'})) { |
foreach my $sequence (split(':',$cache->{'orderedSequences'})) { |
next if($cache->{$sequence.':title'} ne $sequenceSelected && |
next if($cache->{$sequence.':title'} ne $sequenceSelected && |
Line 221 sub GraphData {
|
Line 222 sub GraphData {
|
} |
} |
} |
} |
} |
} |
|
my $percent; |
my $percent = sprintf("%d", ($totalProblems) ? |
if ( $totalProblems >= 100 ) { |
(($totalCorrect/$totalProblems)*100) : 0); |
$percent = sprintf("%d", ($totalProblems) ? |
|
(($totalCorrect/$totalProblems)*100) : 0); |
|
} else { |
|
$percent = sprintf("%d", ($totalProblems) ? $totalCorrect : 0); |
|
} |
if(defined($percentages{$percent})) { |
if(defined($percentages{$percent})) { |
$percentages{$percent} .= ':::'.$_; |
$percentages{$percent} .= ':::'.$_; |
} else { |
} else { |
Line 235 sub GraphData {
|
Line 240 sub GraphData {
|
my @percentCount = (); |
my @percentCount = (); |
my $max = 0; |
my $max = 0; |
my $pno = 0; |
my $pno = 0; |
|
|
foreach my $key (sort NumericSort keys(%percentages)) { |
foreach my $key (sort NumericSort keys(%percentages)) { |
push(@percent, $key); |
push(@percent, $key); |
my @temp = split(':::', $percentages{$key}); |
my @temp = split(':::', $percentages{$key}); |
Line 246 sub GraphData {
|
Line 252 sub GraphData {
|
$pno++; |
$pno++; |
} |
} |
|
|
# $r->print('<br>max='.$max); |
my $cId=0; |
# $r->print('<br> percentcount='.join(',', @percentCount)); |
my @data1=(); |
# $r->print('<br> percent='.join(',', @percent)); |
my @data2=(); |
|
for (my $nIdx=0; $nIdx<$pno; $nIdx++ ) { |
my @GData = ('','Percentage','Number_of_Students',$max,$pno, |
$data1[$cId]=$percent[$nIdx]; |
join(',',@percent), join(',', @percentCount)); |
$data2[$cId]=$percentCount[$nIdx]; |
|
my $cr=$percent[$nIdx+1]; |
|
while ($data1[$cId]<$cr) { |
|
$cId++; |
|
$data1[$cId]=$cId; |
|
$data2[$cId]=0; |
|
} |
|
} |
|
|
|
my $xlabel; |
|
my $Freq; |
|
if ($totalProblems >= 100 ) { |
|
$xlabel = 'Percentage_of_Problems_Correct'; |
|
$Freq=101; |
|
} else { |
|
$xlabel = 'Number_of_Problems_Correct'; |
|
$Freq = $cId; |
|
} |
|
|
# my @GData = ('', 'Percentage', 'Number_of_Students', |
# $r->print('<br>Freq='.$Freq); |
# $max, scalar(@percent), |
# $r->print('<br>max='.$max); |
# join(',',@percent), join(',', @percentCount)); |
# $r->print('<br> percentcount='.join(',', @percentCount)); |
|
# $r->print('<br> percent='.join(',', @percent)); |
|
# $r->print('<br> percentcount='.join(',', @data1)); |
|
# $r->print('<br> percent='.join(',', @data2)); |
|
|
|
my @GData = ("Percentage",$xlabel, |
|
'Number_of_Students',$max,$Freq, |
|
join(',',@data1), join(',', @data2)); |
|
|
$Ptr .= '</form>'."\n"; |
$Ptr .= '</form>'."\n"; |
$Ptr .= '<IMG src="/cgi-bin/graph.png?'.(join('&', @GData)); |
$Ptr .= '<IMG src="/cgi-bin/graph.png?'.(join('&', @GData)); |
Line 301 sub TableData {
|
Line 330 sub TableData {
|
|
|
foreach my $name (sort(split(':::', $percentage->{$_}))) { |
foreach my $name (sort(split(':::', $percentage->{$_}))) { |
$Ptr .= '<a href="/adm/statistics?reportSelected='; |
$Ptr .= '<a href="/adm/statistics?reportSelected='; |
$Ptr .= &Apache::lonnet::escape('Student Assessment'); |
$Ptr .= &escape('Student Assessment'); |
$Ptr .= '&StudentAssessmentStudent='; |
$Ptr .= '&StudentAssessmentStudent='; |
$Ptr .= &Apache::lonnet::escape($cache->{$name.':fullname'}).'">'; |
$Ptr .= &escape($cache->{$name.':fullname'}).'">'; |
$Ptr .= $cache->{$name.':fullname'}; |
$Ptr .= $cache->{$name.':fullname'}; |
$Ptr .= '</a>,  '; |
$Ptr .= '</a>, '; |
} |
} |
|
|
$Ptr .= '</td></tr>'."\n"; |
$Ptr .= '</td></tr>'."\n"; |