--- loncom/interface/loncoursedata.pm 2002/08/15 16:11:34 1.19 +++ loncom/interface/loncoursedata.pm 2002/08/28 18:29:22 1.21 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # (Publication Handler # -# $Id: loncoursedata.pm,v 1.19 2002/08/15 16:11:34 stredwic Exp $ +# $Id: loncoursedata.pm,v 1.21 2002/08/28 18:29:22 matthew Exp $ # # Copyright Michigan State University Board of Trustees # @@ -61,7 +61,7 @@ use GDBM_File; This section contains all the files that get data from other servers and/or itself. There is one function that has a call to get remote -information but isn't included here which is ProcessTopLevelMap. The +information but is not included here which is ProcessTopLevelMap. The usage was small enough to be ignored, but that portion may be moved here in the future. @@ -79,12 +79,14 @@ collecting a classlist for the course th =over 4 -Input: $courseID, $c +Input: $courseID, $lastDownloadTime, $c $courseID: The id of the course +$lastDownloadTime: I am not sure. + $c: The connection class that can determine if the browser has aborted. It -is used to short circuit this function so that it doesn't continue to +is used to short circuit this function so that it does not continue to get information when there is no need. Output: \%classlist @@ -119,13 +121,14 @@ sub DownloadClasslist { } %classlist=&Apache::lonnet::dump('classlist',$courseDomain, $courseNumber); - my ($checkForError)=keys (%classlist); - if($checkForError =~ /^(con_lost|error|no_such_host)/i) { - return \%classlist; + foreach(keys (%classlist)) { + if(/^(con_lost|error|no_such_host)/i) { + return \%classlist; + } } foreach my $name (keys(%classlist)) { - if($c->aborted()) { + if((defined($c) && ($c->aborted())) { $classlist{'error'}='aborted'; return \%classlist; } @@ -201,7 +204,6 @@ sub DownloadCourseInformation { if(!defined($WhatIWant)) { $WhatIWant = '.'; } - $WhatIWant = '.'; %courseData=&Apache::lonnet::dump($courseID, $domain, $name, $WhatIWant); $courseData{'UpToDate'} = 'false'; $courseData{'lastDownloadTime'}=time; @@ -547,7 +549,6 @@ sub ProcessClasslist { if($c->aborted()) { return (); } - push(@names,$name); my $studentInformation = $classlist->{$name.':studentInformation'}, my $sectionData = $classlist->{$name.':sections'}, my $date = $classlist->{$name}, @@ -561,20 +562,24 @@ sub ProcessClasslist { $cache->{$name.':updateTime'}=' Not updated'; } - my ($checkForError)=keys(%$studentInformation); - if($checkForError =~ /^(con_lost|error|no_such_host)/i) { - $cache->{$name.':error'}= - 'Could not download student environment data.'; - $cache->{$name.':fullname'}=''; - $cache->{$name.':id'}=''; - } else { - $cache->{$name.':fullname'}=&ProcessFullName( + my $error = 0; + foreach(keys(%$studentInformation)) { + if(/^(con_lost|error|no_such_host)/i) { + $cache->{$name.':error'}= + 'Could not download student environment data.'; + $cache->{$name.':fullname'}=''; + $cache->{$name.':id'}=''; + $error = 1; + } + } + next if($error); + push(@names,$name); + $cache->{$name.':fullname'}=&ProcessFullName( $studentInformation->{'lastname'}, $studentInformation->{'generation'}, $studentInformation->{'firstname'}, $studentInformation->{'middlename'}); - $cache->{$name.':id'}=$studentInformation->{'id'}; - } + $cache->{$name.':id'}=$studentInformation->{'id'}; my ($end, $start)=split(':',$date); $courseID=~s/\_/\//g; @@ -1016,11 +1021,12 @@ sub DownloadStudentCourseData { my $WhatIWant; - $WhatIWant = '(^version:.+?$|'; + $WhatIWant = '(^version:|'; $WhatIWant .= '^\d+:.+?:(resource\.\d+\.'; $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))\s*$'; $WhatIWant .= '|timestamp)'; $WhatIWant .= ')'; +# $WhatIWant = '.'; if($status eq 'true') { &Apache::lonhtmlcommon::Create_PrgWin($r, $title, $heading); @@ -1079,9 +1085,8 @@ sub DownloadStudentCourseDataSeparate { my $title = 'LON-CAPA Statistics'; my $heading = 'Download Course Data'; -# my $WhatIWant = '.'; my $WhatIWant; - $WhatIWant = '(^version:.+?$|'; + $WhatIWant = '(^version:|'; $WhatIWant .= '^\d+:.+?:(resource\.\d+\.'; $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))\s*$'; $WhatIWant .= '|timestamp)'; @@ -1188,7 +1193,7 @@ sub CheckForResidualDownload { &Apache::lonhtmlcommon::Create_PrgWin($r, $title, $heading); } - my c$ount=1; + my $count=1; foreach my $name (@students) { last if($c->aborted());