--- loncom/interface/statistics/lonproblemanalysis.pm 2002/08/14 16:18:55 1.7
+++ 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.7 2002/08/14 16:18:55 stredwic Exp $
+# $Id: lonproblemanalysis.pm,v 1.22 2003/06/18 17:34:02 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -26,16 +25,12 @@
# http://www.lon-capa.org/
#
# (Navigate problems for statistical reports
-# YEAR=2001
-# 5/5,7/9,7/25/1,8/11,9/13,9/26,10/5,10/9,10/22,10/26 Behrouz Minaei
-# 11/1,11/4,11/16,12/14,12/16,12/18,12/20,12/31 Behrouz Minaei
# YEAR=2002
-# 1/22,2/1,2/6,2/25,3/2,3/6,3/17,3/21,3/22,3/26,4/7,5/6 Behrouz Minaei
-# 5/12,5/14,5/15,5/19,5/26,7/16 Behrouz Minaei
+# 5/12,7/26,9/7,11/22 Behrouz Minaei
#
###
-package Apache::lonproblemanalysis;
+package Apache::lonproblemanalysis;
use strict;
use Apache::lonnet();
@@ -60,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 .= '';
@@ -70,7 +63,8 @@ sub BuildProblemAnalysisPage {
$Ptr .= ' |
';
$r->print($Ptr);
$r->rflush();
- $r->print(&OptionResponseTable($cache{'OptionResponses'}, \%cache));
+# $r->print($cache{'OptionResponses'}.'
');
+ $r->print(&OptionResponseTable($cache{'OptionResponses'}, \%cache, $r));
untie(%cache);
@@ -94,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;
@@ -115,20 +111,26 @@ sub BuildAnalyzePage {
splice(@$students, $studentIndex, 1);
}
}
- untie(%cache);
-
- if(&Apache::loncoursedata::DownloadStudentCourseDataSeparate($students,
- 'true',
- $cacheDB,
- 'true',
- 'true',
- $courseID,
- $r,
- $c) ne 'OK') {
- $r->print($Str);
- return;
- }
-
+ unless(untie(%cache)) {
+ $r->print('Can not untie hash.');
+ $r->rflush();
+ }
+
+ &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 .= '