');
+ }
+ #
my $analysis_html;
- my $PerformanceData =
- &Apache::loncoursedata::get_response_data
- ($Students,$resource->{'symb'},$respid);
+ my $PerformanceData = &Apache::loncoursedata::get_response_data
+ (\@Apache::lonstatistics::SelectedSections,
+ $Apache::lonstatistics::enrollment_status,
+ $resource->{'symb'},$respid);
if (! defined($PerformanceData) ||
ref($PerformanceData) ne 'ARRAY' ) {
$analysis_html = '
'.
@@ -209,7 +219,10 @@ sub NumericalResponseAnalysis {
}
#
# This next call causes all the waiting around that people complain about
- my ($max,$min) = &GetStudentAnswers($r,$problem,$Students);
+ my ($max,$min) =
+ &Apache::lonstathelpers::GetStudentAnswers($r,$problem,$Students,
+ 'Statistics',
+ 'stats_status');
return if ($c->aborted());
#
# Collate the data
@@ -235,6 +248,9 @@ sub one_dimensional_plot {
# Compute data -> image scaling factors
my $min = $Labels->[0];
my $max = $Labels->[-1];
+ if ($max == $min) {
+ $max =$min+1;
+ }
my $h_scale = ($width-10)/($max-$min);
#
my $max_y = 0;
@@ -297,6 +313,17 @@ sub line {
return qq{$/};
}
+sub text {
+ my ($x,$y,$color,$text,$font,$direction) = @_;
+ if (! defined($font) || $font !~ /^(tiny|small|medium|large|giant)$/) {
+ $font = 'medium';
+ }
+ if (! defined($direction) || $direction ne 'vertical') {
+ $direction = '';
+ }
+ return qq{$text};
+}
+
sub rectangle {
my ($x1,$y1,$x2,$y2,$color,$thickness,$filled) = @_;
return qq{};
@@ -312,37 +339,6 @@ sub circle {
return &arc($x,$y,$radius,$radius,0,360,$color,$thickness,$filled);
}
-sub GetStudentAnswers {
- my ($r,$problem,$Students) = @_;
- my $c = $r->connection();
- my %Answers;
- my ($resource,$partid,$respid) = ($problem->{'resource'},
- $problem->{'part'},
- $problem->{'respid'});
- # Open progress window
- my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin
- ($r,'Student Answer Compilation Status',
- 'Student Answer Compilation Progress', scalar(@$Students));
- $r->print("
\n");
- $r->rflush();
- foreach my $student (@$Students) {
- last if ($c->aborted());
- my $sname = $student->{'username'};
- my $sdom = $student->{'domain'};
- my $answer = &Apache::lonstathelpers::analyze_problem_as_student
- ($resource,$sname,$sdom,$partid,$respid);
- &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
- &mt('last student'));
- $student->{'answer'} = $answer;
- }
- return if ($c->aborted());
- $r->print("
\n");
- $r->rflush();
- # close progress window
- &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
- return;
-}
-
sub build_student_data_worksheet {
my ($workbook,$format) = @_;
my $rows_output = 3;
@@ -382,9 +378,10 @@ sub RadioResponseAnalysis {
my ($resource,$respid) = ($problem->{'resource'},
$problem->{'respid'});
my $analysis_html;
- my $PerformanceData =
- &Apache::loncoursedata::get_response_data
- ($Students,$resource->{'symb'},$respid);
+ my $PerformanceData = &Apache::loncoursedata::get_response_data
+ (\@Apache::lonstatistics::SelectedSections,
+ $Apache::lonstatistics::enrollment_status,
+ $resource->{'symb'},$respid);
if (! defined($PerformanceData) ||
ref($PerformanceData) ne 'ARRAY' ) {
$analysis_html = '
'.
@@ -567,9 +564,10 @@ sub OptionResponseAnalysis {
my ($resource,$respid) = ($problem->{'resource'},
$problem->{'respid'});
# Note: part data is not needed.
- my $PerformanceData =
- &Apache::loncoursedata::get_response_data
- ($Students,$resource->{'symb'},$respid);
+ my $PerformanceData = &Apache::loncoursedata::get_response_data
+ (\@Apache::lonstatistics::SelectedSections,
+ $Apache::lonstatistics::enrollment_status,
+ $resource->{'symb'},$respid);
if (! defined($PerformanceData) ||
ref($PerformanceData) ne 'ARRAY' ) {
$r->print('
'.
@@ -1313,18 +1311,18 @@ sub build_foil_index {
if (@Concepts > 1) {
$table .= '