--- loncom/interface/lonstatistics.pm 2002/08/06 17:39:15 1.40 +++ loncom/interface/lonstatistics.pm 2002/08/13 00:37:18 1.41 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # (Publication Handler # -# $Id: lonstatistics.pm,v 1.40 2002/08/06 17:39:15 minaeibi Exp $ +# $Id: lonstatistics.pm,v 1.41 2002/08/13 00:37:18 stredwic Exp $ # # Copyright Michigan State University Board of Trustees # @@ -47,7 +47,6 @@ use Apache::lonhtmlcommon; use Apache::lonproblemanalysis; use Apache::lonproblemstatistics; use Apache::lonstudentassessment; -use Apache::lonchart; use HTML::TokeParser; use GDBM_File; @@ -72,7 +71,8 @@ sub ProcessFormData{ &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, ['sort','download', 'reportSelected', - 'StudentAssessmentStudent']); + 'StudentAssessmentStudent', + 'ProblemStatisticsSort']); &CheckFormElement($cache, 'Status', 'Status', 'Active'); &CheckFormElement($cache, 'postdata', 'reportSelected', 'Class list'); &CheckFormElement($cache, 'reportSelected', 'reportSelected', @@ -121,6 +121,8 @@ sub ProcessFormData{ 'ProblemStatisticsAscend', 'Ascending'); &CheckFormElement($cache, 'ProblemStatisticsMaps', 'ProblemStatisticsMaps', 'All Maps'); + &CheckFormElement($cache, 'ProblemStatisticsSort', + 'ProblemStatisticsSort', 'Homework Sets Order'); # Search only form elements my @headingColumns=(); @@ -356,13 +358,15 @@ sub PrepareData { $cache{'updateTime:columnWidth'}=24; if($cache{'download'} ne 'false') { - my $who = $cache{'download'}; - my $courseData = - &Apache::loncoursedata::DownloadCourseInformation( - $who, $courseID, - $cache{$who.':lastDownloadTime'}); - &Apache::loncoursedata::ProcessStudentData(\%cache, $courseData, $who); + my @who = ($cache{'download'}); $cache{'download'} = 'false'; + if(&Apache::loncoursedata::DownloadStudentCourseData(\@who, 'false', + $cacheDB, 'true', + 'false', $courseID, + $r, $c) ne 'OK') { + untie(%cache); + return 'Stop at download individual'; + } } elsif($cache{'DownloadAll'} ne 'false') { $cache{'DownloadAll'} = 'false'; my @allStudents; @@ -371,23 +375,14 @@ sub PrepareData { } else { @allStudents = split(':::', $cache{'NamesOfStudents'}); } - &Create_PrgWin($r); - my $count=1; - foreach (@allStudents) { - &Update_PrgWin(scalar(@allStudents),$count,$_,$r); - my $courseData = - &Apache::loncoursedata::DownloadCourseInformation( - $_, $courseID, - $cache{$_.':lastDownloadTime'}); - &Apache::loncoursedata::ProcessStudentData(\%cache, $courseData, - $_); - if($c->aborted()) { - untie(%cache); - return 'aborted'; - } - $count++; + if(&Apache::loncoursedata::DownloadStudentCourseData(\@allStudents, + 'false', + $cacheDB, 'true', + 'true', $courseID, + $r, $c) ne 'OK') { + untie(%cache); + return 'Stop at download all'; } - &Close_PrgWin($r); } if($c->aborted()) { @@ -400,43 +395,6 @@ sub PrepareData { return ('OK', $students); } - -# Create progress -sub Create_PrgWin { - my ($r)=@_; - $r->print(< - popwin=open('','popwin','width=400,height=100'); - popwin.document.writeln(''+ - 'LON-CAPA Statistics'+ - '

Computation Progress

'+ - '
'+ - '
'+ - ''); - popwin.document.close(); - -ENDPOP - - $r->rflush(); -} - -# update progress -sub Update_PrgWin { - my ($totalStudents,$index,$name,$r)=@_; - $r->print(''); - $r->rflush(); -} - -# close Progress Line -sub Close_PrgWin { - my ($r)=@_; - $r->print(''); - $r->rflush(); -} - - sub BuildClasslist { my ($cacheDB,$students,$studentInformation,$headings,$r)=@_; @@ -556,13 +514,21 @@ sub BuildStatistics { my $cacheDB = "/home/httpd/perl/tmp/$ENV{'user.name'}". "_$ENV{'user.domain'}_$courseID\_statistics.db"; + $r->print(&Apache::lonhtmlcommon::Title('LON-CAPA Statistics')); + my ($returnValue, $students) = &PrepareData($c, $cacheDB, \@studentInformation, \@headings,$r); if($returnValue ne 'OK') { - $r->print(''.$returnValue."\n".''); + $r->print($returnValue."\n".''); return OK; } + if(!$c->aborted()) { + &Apache::loncoursedata::CheckForResidualDownload($cacheDB, + 'true', 'true', + $courseID, + $r, $c); + } my $GoToPage; if(tie(%cache,'GDBM_File',$cacheDB,&GDBM_READER(),0640)) { @@ -578,7 +544,6 @@ sub BuildStatistics { $reports{'problem_analysis'} = 'Problem Analysis'; } - $r->print(&Apache::lonhtmlcommon::Title('LON-CAPA Statistics')); $r->print('
print('method="post" action="/adm/statistics">'); $r->print(&CreateMainMenu($cache{'Status'}, \%reports));