[LON-CAPA-cvs] cvs: loncom /interface loncoursedata.pm
stredwic
lon-capa-cvs@mail.lon-capa.org
Mon, 05 Aug 2002 14:16:19 -0000
stredwic Mon Aug 5 10:16:19 2002 EDT
Modified files:
/loncom/interface loncoursedata.pm
Log:
Fixed the problem where not all the problems were showing up for BS111. The
problem was that sequences in the start resource were being skipped. By
simply adding a next in the process sequence block, it will process a
sequence right away instead of trying to move to the next resource.
Index: loncom/interface/loncoursedata.pm
diff -u loncom/interface/loncoursedata.pm:1.11 loncom/interface/loncoursedata.pm:1.12
--- loncom/interface/loncoursedata.pm:1.11 Sat Aug 3 14:47:24 2002
+++ loncom/interface/loncoursedata.pm Mon Aug 5 10:16:19 2002
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# (Publication Handler
#
-# $Id: loncoursedata.pm,v 1.11 2002/08/03 18:47:24 stredwic Exp $
+# $Id: loncoursedata.pm,v 1.12 2002/08/05 14:16:19 stredwic Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -182,7 +182,7 @@
=cut
sub DownloadCourseInformation {
- my ($namedata,$courseID,$lastDownloadTime)=@_;
+ my ($namedata,$courseID,$lastDownloadTime,$WhatIWant)=@_;
my %courseData;
my ($name,$domain) = split(/\:/,$namedata);
@@ -197,13 +197,10 @@
}
# Download course data
- my $WhatIWant = '(version:(\w|\/|\.)+?$|';
- $WhatIWant .= '\d+?:(\w|\/|\.)+?:(resource\.\d+\.';
- $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))';
- $WhatIWant .= '|timestamp)';
- $WhatIWant .= ')';
-# %courseData=&Apache::lonnet::dump($courseID, $domain, $name, $WhatIWant);
- %courseData=&Apache::lonnet::dump($courseID, $domain, $name);
+ if(!defined($WhatIWant)) {
+ $WhatIWant = '.';
+ }
+ %courseData=&Apache::lonnet::dump($courseID, $domain, $name, $WhatIWant);
$courseData{'UpToDate'} = 'false';
$courseData{'lastDownloadTime'}=time;
return \%courseData;
@@ -284,7 +281,11 @@
$currentSequence=-1;
my $topLevelSequenceNumber = $currentSequence;
+ my $problemCount=0;
+ my $problemCount2=0;
my %sequenceRecord;
+ my $sequenceCount=0;
+ my $sequenceCount2=0;
while(1) {
if($c->aborted()) {
last;
@@ -293,6 +294,7 @@
#if page || sequence
if(defined($hash{'map_pc_'.$hash{'src_'.$currentResourceID}}) &&
!defined($sequenceRecord{$currentResourceID})) {
+ $sequenceCount++;
$sequenceRecord{$currentResourceID}++;
push(@sequences, $currentSequence);
push(@currentResource, $currentResourceID);
@@ -323,17 +325,22 @@
last;
}
}
+ next;
}
# Handle gradable resources: exams, problems, etc
$currentResourceID=~/(\d+)\.(\d+)/;
my $partA=$1;
my $partB=$2;
+ if($hash{'src_'.$currentResourceID}=~/\.problem$/) {
+ $problemCount++;
+ }
if($hash{'src_'.$currentResourceID}=~
/\.(problem|exam|quiz|assess|survey|form)$/ &&
$partA eq $currentSequence &&
!defined($sequenceRecord{$currentSequence.':'.
$currentResourceID})) {
+ $problemCount2++;
$sequenceRecord{$currentSequence.':'.$currentResourceID}++;
my $Problem = &Apache::lonnet::symbclean(
&Apache::lonnet::declutter($hash{'map_id_'.$partA}).
@@ -409,6 +416,7 @@
$lastResourceID=pop(@finishResource);
if(defined($cache->{$currentSequence.':problems'})) {
+ $sequenceCount2++;
# Capture sequence information here
$cache->{$currentSequence.':title'}=
$hash{'title_'.$currentResourceID};
@@ -473,6 +481,10 @@
$currentResourceID=pop(@currentResource);
}
+ $cache->{'jasoncount'}=$problemCount;
+ $cache->{'jasoncount2'}=$problemCount2;
+ $cache->{'jasonseq'}=$sequenceCount;
+ $cache->{'jasonseq2'}=$sequenceCount2;
unless (untie(%hash)) {
&Apache::lonnet::logthis("<font color=blue>WARNING: ".
"Could not untie coursemap $fn (browse)".