--- loncom/interface/statistics/lonproblemanalysis.pm 2002/09/07 23:07:38 1.10
+++ loncom/interface/statistics/lonproblemanalysis.pm 2003/06/18 17:34:02 1.22
@@ -1,7 +1,6 @@
# The LearningOnline Network with CAPA
-# (Publication Handler
#
-# $Id: lonproblemanalysis.pm,v 1.10 2002/09/07 23:07:38 minaeibi Exp $
+# $Id: lonproblemanalysis.pm,v 1.22 2003/06/18 17:34:02 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -27,11 +26,11 @@
#
# (Navigate problems for statistical reports
# YEAR=2002
-# 5/12,7/26 Behrouz Minaei
+# 5/12,7/26,9/7,11/22 Behrouz Minaei
#
###
-package Apache::lonproblemanalysis;
+package Apache::lonproblemanalysis;
use strict;
use Apache::lonnet();
@@ -56,9 +55,7 @@ sub BuildProblemAnalysisPage {
$Ptr .= '
'."\n";
my @sectionsSelected = split(':',$cache{'sectionsSelected'});
my @sections = split(':',$cache{'sectionList'});
- $Ptr .= &Apache::lonhtmlcommon::MultipleSectionSelect(\@sections,
- \@sectionsSelected,
- 'Statistics');
+ $Ptr .= &Apache::lonstatistics::SectionSelect('Section','multiple',5);
$Ptr .= ' | '."\n";
$Ptr .= 'Intervals | '."\n";
$Ptr .= '';
@@ -66,6 +63,7 @@ sub BuildProblemAnalysisPage {
$Ptr .= ' |
';
$r->print($Ptr);
$r->rflush();
+# $r->print($cache{'OptionResponses'}.'
');
$r->print(&OptionResponseTable($cache{'OptionResponses'}, \%cache, $r));
untie(%cache);
@@ -90,7 +88,9 @@ sub BuildAnalyzePage {
# Remove students who don't have the proper section.
my @sectionsSelected = split(':',$cache{'sectionsSelected'});
- for(my $studentIndex=((scalar @$students)-1); $studentIndex>=0;
+
+ my $studentCount = scalar @$students;
+ for(my $studentIndex=$studentCount-1; $studentIndex>=0;
$studentIndex--) {
my $value = $cache{$students->[$studentIndex].':section'};
my $found = 0;
@@ -116,19 +116,21 @@ sub BuildAnalyzePage {
$r->rflush();
}
- my $error =
- &Apache::loncoursedata::DownloadStudentCourseDataSeparate($students,
- 'true',
- $cacheDB,
- 'true',
- 'true',
- $courseID,
- $r, $c);
- if($error ne 'OK') {
- $r->print($error.'
Error downloading course data
');
- return;
- }
+ &Apache::lonhtmlcommon::Close_PrgWin($r);
+### jason code for checing is there data in cache
+# my $error =
+# &Apache::loncoursedata::DownloadStudentCourseDataSeparate($students,
+# 'true',
+# $cacheDB,
+# 'true',
+# 'true',
+# $courseID,
+# $r, $c);
+# if($error ne 'OK') {
+# $r->print($error.'
Error downloading course data
');
+# return;
+# }
unless(tie(%cache,'GDBM_File',$cacheDB,&GDBM_READER(),0640)) {
$Str .= 'Unable to tie database.';
@@ -138,15 +140,17 @@ sub BuildAnalyzePage {
my ($problemId, $part, $responseId)=split(':',$cache{'AnalyzeInfo'});
my $uri = $cache{$problemId.':source'};
- my $problem = $cache{$problemId.':problem'};
+ my $problem = $cache{$problemId.':problem'};
my $title = $cache{$problemId.':title'};
my $interval = $cache{'Interval'};
+ my $heading = 'Restore this particular Option Response Problem '.
+ 'Results, Please wait...';
my %ConceptData;
$ConceptData{"Interval"} = $interval;
#Initialize the option response true answers
- my ($analyzeData) = &InitAnalysis($uri, $part, $responseId, $problem,
+ my ($analyzeData) = &InitAnalysis($uri, $part, $responseId, $problem,
$students->[0], $courseID);
if(defined($analyzeData->{'error'})) {
$Str .= $analyzeData->{'error'}.'
Incorrect part requested.
';
@@ -159,7 +163,7 @@ sub BuildAnalyzePage {
if($c->aborted()) { untie(%cache); return; }
#compute the intervals
- &Interval($part, $problem, $interval, $analyzeData->{'concepts'},
+ &Interval($part, $problem, $interval, $analyzeData->{'concepts'},
\%ConceptData);
$title =~ s/\ /"_"/eg;
@@ -168,18 +172,26 @@ sub BuildAnalyzePage {
$r->print($Str);
$Str = '';
if($c->aborted()) { untie(%cache); return; }
-
+
+
+ my %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r, $title,
+ $heading,$#$students+1);
+
#Java script Progress window
for(my $index=0; $index<(scalar @$students); $index++) {
if($c->aborted()) { untie(%cache); return; }
- &OpStatus($problemId, $students->[$index], \%ConceptData,
- $analyzeData->{'foil_to_concept'}, $analyzeData, \%cache);
+ &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
+ 'last student '.$students->[$index]);
+ &OpStatus($problemId, $students->[$index], \%ConceptData,
+ $analyzeData->{'foil_to_concept'}, $analyzeData,
+ \%cache, $courseID);
}
+ &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state);
$Str .= '
';
for (my $k=0; $k<$interval; $k++ ) {
if($c->aborted()) { untie(%cache); return $Str; }
- $Str .= &DrawGraph($k, $title, $analyzeData->{'concepts'},
+ $Str .= &DrawGraph($k, $title, $analyzeData->{'concepts'},
\%ConceptData);
$r->print($Str);
$Str = '';
@@ -190,7 +202,7 @@ sub BuildAnalyzePage {
$r->print($Str);
$Str = '';
}
- my $Answ=&Apache::lonnet::ssi($uri);
+ my $Answ=&Apache::lonnet::ssi_body($uri);
$Str .= '
Here you can see the Problem:
'.$Answ;
$Str .= '