Diff for /loncom/interface/loncoursedata.pm between versions 1.50 and 1.55

version 1.50, 2003/02/25 15:55:15 version 1.55, 2003/03/03 21:52:24
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # (Publication Handler  
 #  #
 # $Id$  # $Id$
 #  #
Line 281  The returned structure is a hash referen Line 280  The returned structure is a hash referen
   source => '/s/o/u/r/c/e',    source => '/s/o/u/r/c/e',
   type  => (container|assessment),    type  => (container|assessment),
   num_assess   => 2,               # only for container    num_assess   => 2,               # only for container
   contents     => [ {},{},{},{} ], # only for container  
   parts        => [11,13,15],      # only for assessment    parts        => [11,13,15],      # only for assessment
   response_ids => [12,14,16],      # only for assessment    response_ids => [12,14,16],      # only for assessment
   contents     => [........]       # only for container    contents     => [........]       # only for container
Line 313  sub get_sequence_assessment_data { Line 311  sub get_sequence_assessment_data {
     ## We are going to loop until we run out of sequences/pages to explore for      ## 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      ## resources.  This means we have to start out with something to look
     ## at.      ## at.
     my $curRes = $iterator->next(); # BEGIN_MAP      my $title = $ENV{'course.'.$ENV{'request.course.id'}.'.description'};
     $curRes = $iterator->next(); # The sequence itself      my $symb  = 'top';
     #      my $src   = 'not applicable';
     my $title = $curRes->title();  
     my $symb  = $curRes->symb();  
     my $src   = $curRes->src();  
     #      #
     my @Sequences;       my @Sequences; 
     my @Assessments;      my @Assessments;
     my @Nested_Sequences = ();   # Stack of sequences, keeps track of depth      my @Nested_Sequences = ();   # Stack of sequences, keeps track of depth
     my $top = { title    => $title,      my $top = { title    => $title,
                   src      => $src,
                 symb     => $symb,                  symb     => $symb,
                 type     => 'container',                  type     => 'container',
                 num_assess => 0,                  num_assess => 0,
                   num_assess_parts => 0,
                 contents   => [], };                  contents   => [], };
     push (@Sequences,$top);      push (@Sequences,$top);
     push (@Nested_Sequences, $top);      push (@Nested_Sequences, $top);
     #      #
     # We need to keep track of which sequences contain homework problems      # We need to keep track of which sequences contain homework problems
     #       # 
     my $previous = $top;      my $previous;
       my $curRes = $iterator->next(); # BEGIN_MAP
       $curRes = $iterator->next(); # The first item in the top level map.
     while (scalar(@Nested_Sequences)) {      while (scalar(@Nested_Sequences)) {
         $previous = $curRes;          $previous = $curRes;
         $curRes = $iterator->next();          $curRes = $iterator->next();
         my $currentmap = $Nested_Sequences[-1]; # Last one on the stack          my $currentmap = $Nested_Sequences[-1]; # Last one on the stack
         if ($curRes == $iterator->BEGIN_MAP()) {          if ($curRes == $iterator->BEGIN_MAP()) {
             # get the map itself, instead of BEGIN_MAP              # get the map itself, instead of BEGIN_MAP
             $title = $previous->title();#$curRes->title();              $title = $previous->title();
             $symb  = $previous->symb;#curRes->symb();              $symb  = $previous->symb();
             $src   = $previous->src();#$curRes->src();              $src   = $previous->src();
             my $newmap = { title    => $title,              my $newmap = { title    => $title,
                            src      => $src,                             src      => $src,
                            symb     => $symb,                             symb     => $symb,
Line 370  sub get_sequence_assessment_data { Line 369  sub get_sequence_assessment_data {
                            src   => $src,                             src   => $src,
                            symb  => $symb,                             symb  => $symb,
                            type  => 'assessment',                             type  => 'assessment',
                              parts => $parts,
                              num_parts => scalar(@$parts),
                        };                         };
         push(@Assessments,$assessment);          push(@Assessments,$assessment);
         push(@{$currentmap->{'contents'}},$assessment);          push(@{$currentmap->{'contents'}},$assessment);
         $currentmap->{'num_assess'}++;          $currentmap->{'num_assess'}++;
           $currentmap->{'num_assess_parts'}+= scalar(@$parts);
     }      }
     return ($top,\@Sequences,\@Assessments);      return ($top,\@Sequences,\@Assessments);
 }  }
Line 1306  sub DownloadStudentCourseData { Line 1308  sub DownloadStudentCourseData {
     $WhatIWant .= ')';      $WhatIWant .= ')';
 #    $WhatIWant = '.';  #    $WhatIWant = '.';
   
       my %prog_state;
     if($status eq 'true') {      if($status eq 'true') {
         &Apache::lonhtmlcommon::Create_PrgWin($r, $title, $heading);          %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r, $title,
          $heading,($#$students)+1);
     }      }
   
     my $displayString;  
     my $count=0;  
     foreach (@$students) {      foreach (@$students) {
         my %cache;          my %cache;
   
         if($c->aborted()) { return 'Aborted'; }          if($c->aborted()) { return 'Aborted'; }
   
         if($status eq 'true') {          if($status eq 'true') {
             $count++;              &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
             my $displayString = $count.'/'.$studentCount.': '.$_;    'last student '.$_);
             &Apache::lonhtmlcommon::Update_PrgWin($displayString, $r);  
         }          }
   
         my $downloadTime='Not downloaded';          my $downloadTime='Not downloaded';
Line 1357  sub DownloadStudentCourseData { Line 1358  sub DownloadStudentCourseData {
     next;      next;
  }   }
     }      }
     if($status eq 'true') { &Apache::lonhtmlcommon::Close_PrgWin($r); }      if($status eq 'true') { &Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); }
   
     return 'OK';      return 'OK';
 }  }
Line 1378  sub DownloadStudentCourseDataSeparate { Line 1379  sub DownloadStudentCourseDataSeparate {
     &CheckForResidualDownload($cacheDB, 'true', 'true', $courseID, $r, $c);      &CheckForResidualDownload($cacheDB, 'true', 'true', $courseID, $r, $c);
   
     my $studentCount = scalar(@$students);      my $studentCount = scalar(@$students);
       my %prog_state;
     if($status eq 'true') {      if($status eq 'true') {
         &Apache::lonhtmlcommon::Create_PrgWin($r, $title, $heading);          %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r, $title,
        $heading,($#$students)+1);
     }      }
     my $count=0;  
     my $displayString='';      my $displayString='';
     foreach (@$students) {      foreach (@$students) {
         if($c->aborted()) {          if($c->aborted()) {
Line 1389  sub DownloadStudentCourseDataSeparate { Line 1391  sub DownloadStudentCourseDataSeparate {
         }          }
   
         if($status eq 'true') {          if($status eq 'true') {
             $count++;              &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
             $displayString = $count.'/'.$studentCount.': '.$_;    'last student '.$_);
             &Apache::lonhtmlcommon::Update_PrgWin($displayString, $r);  
         }          }
   
         my %cache;          my %cache;
Line 1436  sub DownloadStudentCourseDataSeparate { Line 1437  sub DownloadStudentCourseDataSeparate {
         }          }
         untie(%downloadData);          untie(%downloadData);
     }      }
     if($status eq 'true') { &Apache::lonhtmlcommon::Close_PrgWin($r); }      if($status eq 'true') { &Apache::lonhtmlcommon::Close_PrgWin($r,
     \%prog_state); }
   
     return &CheckForResidualDownload($cacheDB, 'true', 'true',       return &CheckForResidualDownload($cacheDB, 'true', 'true', 
                                      $courseID, $r, $c);                                       $courseID, $r, $c);
Line 1475  sub CheckForResidualDownload { Line 1477  sub CheckForResidualDownload {
     my $heading = 'Process Course Data';      my $heading = 'Process Course Data';
     my $title = 'LON-CAPA Statistics';      my $title = 'LON-CAPA Statistics';
     my $studentCount = scalar(@students);      my $studentCount = scalar(@students);
       my %prog_state;
     if($status eq 'true') {      if($status eq 'true') {
         &Apache::lonhtmlcommon::Create_PrgWin($r, $title, $heading);          %prog_state=&Apache::lonhtmlcommon::Create_PrgWin($r, $title,
         $heading,$#students+1);
     }      }
   
     my $count=1;      my $count=1;
Line 1484  sub CheckForResidualDownload { Line 1488  sub CheckForResidualDownload {
         last if($c->aborted());          last if($c->aborted());
   
         if($status eq 'true') {          if($status eq 'true') {
             my $displayString = $count.'/'.$studentCount.': '.$name;      &Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,
             &Apache::lonhtmlcommon::Update_PrgWin($displayString, $r);       'last student '.$name);
         }          }
   
         if($extract eq 'true') {          if($extract eq 'true') {
Line 1496  sub CheckForResidualDownload { Line 1500  sub CheckForResidualDownload {
         $count++;          $count++;
     }      }
   
     if($status eq 'true') { &Apache::lonhtmlcommon::Close_PrgWin($r); }      if($status eq 'true') { &Apache::lonhtmlcommon::Close_PrgWin($r,
      \%prog_state); }
   
     untie(%cache);      untie(%cache);
     untie(%downloadData);      untie(%downloadData);
Line 1685  $ENV{'course.'.$cid.'.domain'}, and $ENV Line 1690  $ENV{'course.'.$cid.'.domain'}, and $ENV
   
 Returns a reference to a hash which contains:  Returns a reference to a hash which contains:
  keys    '$sname:$sdom'   keys    '$sname:$sdom'
  values  [$end,$start,$id,$section,$fullname]   values  [$sdom,$sname,$end,$start,$id,$section,$fullname,$status]
   
   The constant values CL_SDOM, CL_SNAME, CL_END, etc. can be used
   as indices into the returned list to future-proof clients against
   changes in the list order.
   
 =cut  =cut
   
 ################################################  ################################################
 ################################################  ################################################
   
   sub CL_SDOM     { return 0; }
   sub CL_SNAME    { return 1; }
   sub CL_END      { return 2; }
   sub CL_START    { return 3; }
   sub CL_ID       { return 4; }
   sub CL_SECTION  { return 5; }
   sub CL_FULLNAME { return 6; }
   sub CL_STATUS   { return 7; }
   
 sub get_classlist {  sub get_classlist {
     my ($cid,$cdom,$cnum) = @_;      my ($cid,$cdom,$cnum) = @_;
     $cid = $cid || $ENV{'request.course.id'};      $cid = $cid || $ENV{'request.course.id'};

Removed from v.1.50  
changed lines
  Added in v.1.55


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