Diff for /loncom/interface/loncoursedata.pm between versions 1.41 and 1.45

version 1.41, 2003/01/10 21:50:17 version 1.45, 2003/02/13 14:49:16
Line 218  sub DownloadCourseInformation { Line 218  sub DownloadCourseInformation {
                                       $courseID.'.db',                                         $courseID.'.db', 
                                       $Apache::lonnet::perlvar{'lonUsersDir'});                                        $Apache::lonnet::perlvar{'lonUsersDir'});
   
     if($lastDownloadTime >= $modifiedTime && $modifiedTime >= 0) {      if($lastDownloadTime ne 'Not downloaded' && 
          $lastDownloadTime >= $modifiedTime && $modifiedTime >= 0) {
         # Data is not gathered so return UpToDate as true.  This          # Data is not gathered so return UpToDate as true.  This
         # will be interpreted in ProcessClasslist          # will be interpreted in ProcessClasslist
         $courseData{$namedata.':lastDownloadTime'}=time;          $courseData{$namedata.':lastDownloadTime'}=time;
Line 260  with stopping downloading then can not t Line 261  with stopping downloading then can not t
   
 # ----- PROCESSING FUNCTIONS ---------------------------------------  # ----- PROCESSING FUNCTIONS ---------------------------------------
   
   
   
   =pod
   
   =item &get_sequence_assessment_data()
   
   AT THIS TIME THE USE OF THIS FUNCTION IS *NOT* RECOMMENDED
   
   Use lonnavmaps to build a data structure describing the order and 
   assessment contents of each sequence in the current course.
   
   The returned structure is a hash reference. 
   
   { title  => 'title',
     symb   => 'symb',
     source => '/s/o/u/r/c/e',
     type  => (container|assessment),
     contents     => [ {},{},{},{} ], # only for container
     parts        => [11,13,15],      # only for assessment
     response_ids => [12,14,16]       # only for assessment
   }
   
   $hash->{'contents'} is a reference to an array of hashes of the same structure.
   
   =cut
   
   sub get_sequence_assessment_data {
       return undef;
       my $fn=$ENV{'request.course.fn'};
       &Apache::lonnet::logthis('filename = '.$fn);
       ##
       ## use navmaps
       my $navmap = Apache::lonnavmaps::navmap->new($fn.".bd",$fn."_parms.db",1,0);
       if (!defined($navmap)) {
           return 'Can not open Coursemap';
       }
       my $iterator = $navmap->getIterator(undef, undef, undef, 1);
       ##
       ## Prime the pump 
       ## 
       ## We are going to loop until we run out of sequences/pages to explore for
       ## resources.  This means we have to start out with something to look
       ## at.
       my $curRes = $iterator->next(); # BEGIN_MAP
       $curRes = $iterator->next(); # The sequence itself
       #
       my $title = $curRes->title();
       my $symb  = $curRes->symb();
       my $src   = $curRes->src();
       #
       my @Nested_Sequences = ();   # Stack of sequences, keeps track of depth
       my $top = { title    => $title,
                   symb     => $symb,
                   type     => 'container',
                   num_assess => 0,
                   contents   => [], };
       push (@Nested_Sequences, $top);
       #
       # We need to keep track of which sequences contain homework problems
       # 
       while (scalar(@Nested_Sequences)) {
           $curRes = $iterator->next();
           my $currentmap = $Nested_Sequences[-1]; # Last one on the stack
           if ($curRes == $iterator->BEGIN_MAP()) {
               # get the map itself, instead of BEGIN_MAP
               $curRes = $iterator->next(); 
               $title = $curRes->title();
               $symb  = $curRes->symb();
               $src   = $curRes->src();
               my $newmap = { title    => $title,
                              src      => $src,
                              symb     => $symb,
                              type     => 'container',
                              num_assess => 0,
                              contents   => [],
                          };
               push (@{$currentmap->{'contents'}},$newmap); # this is permanent
               push (@Nested_Sequences, $newmap); # this is a stack
               next;
           }
           if ($curRes == $iterator->END_MAP()) {
               pop(@Nested_Sequences);
               next;
           }
           next if (! ref($curRes));
           next if (! $curRes->is_problem() && !$curRes->randomout);
           # Okay, from here on out we only deal with assessments
           $title = $curRes->title();
           $symb  = $curRes->symb();
           $src   = $curRes->src();
           my $parts = $curRes->parts();
           my $assessment = { title => $title,
                              src   => $src,
                              symb  => $symb,
                              type  => 'assessment',
                          };
           push(@{$currentmap->{'contents'}},$assessment);
           $currentmap->{'num_assess'}++;
       }
       return $top;
   }
   
 =pod  =pod
   
 =item &ProcessTopResourceMap()  =item &ProcessTopResourceMap()
Line 521  sub ProcessTopResourceMap { Line 624  sub ProcessTopResourceMap {
             $errorMessage .= 'loncoursedata::ProcessTopLevelMap.';              $errorMessage .= 'loncoursedata::ProcessTopLevelMap.';
             $errorMessage .= "  bighash to_$currentResourceID not defined!";              $errorMessage .= "  bighash to_$currentResourceID not defined!";
             &Apache::lonnet::logthis($errorMessage);              &Apache::lonnet::logthis($errorMessage);
     last;      if (!defined($currentResourceID)) {last;}
  }   }
  my @nextResources=();   my @nextResources=();
  foreach (split(/\,/,$hash{'to_'.$currentResourceID})) {   foreach (split(/\,/,$hash{'to_'.$currentResourceID})) {
Line 1180  sub DownloadStudentCourseData { Line 1283  sub DownloadStudentCourseData {
     my $WhatIWant;      my $WhatIWant;
     $WhatIWant = '(^version:|';      $WhatIWant = '(^version:|';
     $WhatIWant .= '^\d+:.+?:(resource\.\d+\.';      $WhatIWant .= '^\d+:.+?:(resource\.\d+\.';
     $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))\s*$';      $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))\s*$';#'
     $WhatIWant .= '|timestamp)';      $WhatIWant .= '|timestamp)';
     $WhatIWant .= ')';      $WhatIWant .= ')';
 #    $WhatIWant = '.';  #    $WhatIWant = '.';
Line 1250  sub DownloadStudentCourseDataSeparate { Line 1353  sub DownloadStudentCourseDataSeparate {
     my $WhatIWant;      my $WhatIWant;
     $WhatIWant = '(^version:|';      $WhatIWant = '(^version:|';
     $WhatIWant .= '^\d+:.+?:(resource\.\d+\.';      $WhatIWant .= '^\d+:.+?:(resource\.\d+\.';
     $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))\s*$';      $WhatIWant .= '(solved|tries|previous|awarded|(\d+\.submission))\s*$';#'
     $WhatIWant .= '|timestamp)';      $WhatIWant .= '|timestamp)';
     $WhatIWant .= ')';      $WhatIWant .= ')';
   

Removed from v.1.41  
changed lines
  Added in v.1.45


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>