Diff for /loncom/interface/loncoursedata.pm between versions 1.54 and 1.56

version 1.54, 2003/02/28 23:19:01 version 1.56, 2003/03/05 14:39:08
Line 1308  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 1359  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 1380  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 1391  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 1438  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 1477  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 1486  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 1498  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 1577  sub get_current_state { Line 1580  sub get_current_state {
     #      #
     $courseid = $ENV{'request.course.id'} if (! defined($courseid));      $courseid = $ENV{'request.course.id'} if (! defined($courseid));
     #      #
   #    my $cachefilename = $Apache::lonnet::tmpdir.$ENV{'user.name'}.'_'.
   #                                                $ENV{'user.domain'}.'_'.
   #                                                $courseid.'_student_data.db';
     my $cachefilename = $Apache::lonnet::tmpdir.$ENV{'user.name'}.'_'.      my $cachefilename = $Apache::lonnet::tmpdir.$ENV{'user.name'}.'_'.
                                                 $ENV{'user.domain'}.'_'.                                                  $ENV{'user.domain'}.'_'.
                                                 $courseid.'_student_data.db';                                                  $courseid.'_'.
                                                   $sname.'_'.$sdom.
                                                       '_student_data.db';
     my %cache;      my %cache;
     #      #
     my %student_data; # return values go here      my %student_data; # return values go here
Line 1591  sub get_current_state { Line 1599  sub get_current_state {
     if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {      if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {
         if (exists($cache{$key.'time'})) {          if (exists($cache{$key.'time'})) {
             $updatetime = $cache{$key.'time'};              $updatetime = $cache{$key.'time'};
 #            &Apache::lonnet::logthis('got updatetime of '.$updatetime);  
         }          }
         untie(%cache);          untie(%cache);
     }      }
     # timestamp/devalidation       # timestamp/devalidation check should go here.
     my $modifiedtime = 1;      my $modifiedtime = 1;
     # Take whatever steps are neccessary at this point to give $modifiedtime a      # Take whatever steps are neccessary at this point to give $modifiedtime a
     # new value      # new value
     #      #
     if (($updatetime < $modifiedtime) ||       if (($updatetime < $modifiedtime) || 
         (defined($forcedownload) && $forcedownload)) {          (defined($forcedownload) && $forcedownload)) {
 #        &Apache::lonnet::logthis("loading data");  
         # Get all the students current data          # Get all the students current data
         my $time_of_retrieval = time;          my $time_of_retrieval = time;
         my @tmp = &Apache::lonnet::currentdump($courseid,$sdom,$sname);          my @tmp = &Apache::lonnet::currentdump($courseid,$sdom,$sname);
Line 1624  sub get_current_state { Line 1630  sub get_current_state {
         #         keys instead of unescaping every key.          #         keys instead of unescaping every key.
         #          #
         if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_WRCREAT(),0640)) {          if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_WRCREAT(),0640)) {
 #            &Apache::lonnet::logthis("writing data");  
             while (my ($current_symb,$param_hash) = each(%student_data)) {              while (my ($current_symb,$param_hash) = each(%student_data)) {
                 my @Parameters = %{$param_hash};                  my @Parameters = %{$param_hash};
                 my $value = join(':',map { &Apache::lonnet::escape($_); }                   my $value = join(':',map { &Apache::lonnet::escape($_); } 
Line 1636  sub get_current_state { Line 1641  sub get_current_state {
             untie(%cache);              untie(%cache);
         }          }
     } else {      } else {
         &Apache::lonnet::logthis('retrieving cached data ');  
         if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {          if (tie(%cache,'GDBM_File',$cachefilename,&GDBM_READER(),0640)) {
             if (defined($symb)) {              if (defined($symb)) {
                 my  $searchkey = $key.&Apache::lonnet::escape($symb);                  my  $searchkey = $key.&Apache::lonnet::escape($symb);
Line 1649  sub get_current_state { Line 1653  sub get_current_state {
                     if ($testkey =~ /$searchkey/) { # \Q \E?  May be necc.                      if ($testkey =~ /$searchkey/) { # \Q \E?  May be necc.
                         my $tmpsymb = $1;                          my $tmpsymb = $1;
                         next if ($tmpsymb =~ 'time');                          next if ($tmpsymb =~ 'time');
 #                        &Apache::lonnet::logthis('found '.$tmpsymb.':');  
                         $student_data{&Apache::lonnet::unescape($tmpsymb)} =                           $student_data{&Apache::lonnet::unescape($tmpsymb)} = 
                             &make_into_hash($params);                              &make_into_hash($params);
                     }                      }
Line 1659  sub get_current_state { Line 1662  sub get_current_state {
         }          }
     }      }
     if (! defined($symb)) {      if (! defined($symb)) {
 #        &Apache::lonnet::logthis("returning all data");  
         return %student_data;          return %student_data;
     } elsif (exists($student_data{$symb})) {      } elsif (exists($student_data{$symb})) {
 #        &Apache::lonnet::logthis("returning data for symb=".$symb);  
         return %{$student_data{$symb}};          return %{$student_data{$symb}};
     } else {      } else {
         return ();          return ();

Removed from v.1.54  
changed lines
  Added in v.1.56


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