Diff for /loncom/homework/structuretags.pm between versions 1.285 and 1.289

version 1.285, 2005/04/18 21:10:41 version 1.289, 2005/04/22 17:15:33
Line 321  sub initialize_storage { Line 321  sub initialize_storage {
 # if running user has student role.    # if running user has student role.  
 sub finalize_storage {  sub finalize_storage {
     my $result;      my $result;
     my ($temp) = keys %Apache::lonhomework::results;      if (%Apache::lonhomework::results) {
     if ( $temp ne '' ) {  
  my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();   my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();
  if ($env{'request.state'} eq 'construct' || $symb eq '') {   if ($env{'request.state'} eq 'construct' || $symb eq '') {
     $Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'};      $Apache::lonhomework::results{'rndseed'}=$env{'form.rndseed'};
Line 340  sub finalize_storage { Line 339  sub finalize_storage {
     }      }
     return $result;      return $result;
 }  }
   use Data::Dumper;
   
 # -------------------------------------------------------------store_aggregates  # -------------------------------------------------------------store_aggregates
 # Sends hash of values to be incremented in nohist_resourcetracker.db  # Sends hash of values to be incremented in nohist_resourcetracker.db
Line 347  sub finalize_storage { Line 347  sub finalize_storage {
 # and corrects for each part for an instance of a problem, as appropriate.  # and corrects for each part for an instance of a problem, as appropriate.
 sub store_aggregates {  sub store_aggregates {
     my ($symb,$courseid) = @_;      my ($symb,$courseid) = @_;
     my %aggregate = ();      my %aggregate;
     my @parts = ();      my @parts;
     my ($cdomain,$cname) = split/_/,$courseid;      my $cdomain = $env{'course.'.$env{'request.course.id'}.'.domain'};
     foreach my $key (keys %Apache::lonhomework::results) {      my $cname = $env{'course.'.$env{'request.course.id'}.'.num'};
         if ($key =~ /resource\.(\d+)\.tries/) {      foreach my $key (keys(%Apache::lonhomework::results)) {
             push @parts, $1;          if ($key =~ /resource\.([^\.]+)\.tries/) {
               push(@parts, $1);
         }          }
     }      }
     foreach (@parts) {      foreach my $part (@parts) {
         if ($Apache::lonhomework::results{'resource.'.$_.'.award'} eq 'APPROX_ANS' || $Apache::lonhomework::results{'resource.'.$_.'.award'} eq 'EXACT_ANS') {          if ($Apache::lonhomework::results{'resource.'.$part.'.award'}
             $aggregate{$symb.'_'.$_.'_correct'} = 1;      eq 'APPROX_ANS' ||
       $Apache::lonhomework::results{'resource.'.$part.'.award'}
       eq 'EXACT_ANS') {
               $aggregate{$symb."\0".$part."\0correct"} = 1;
         }          }
         if ($Apache::lonhomework::results{'resource.'.$_.'.tries'} == 1) {          if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) {
             $aggregate{$symb.'_'.$_.'_users'} = 1;              $aggregate{$symb."\0".$part."\0users"} = 1;
         }          }
         $aggregate{$symb.'_'.$_.'_attempts'} = 1;          $aggregate{$symb."\0".$part."\0attempts"} = 1;
       }
       if (%aggregate) {
    &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,
         $cdomain,$cname); 
   
     }      }
     &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,$cdomain,$cname);   
 }  }
   
 sub checkout_msg {  sub checkout_msg {

Removed from v.1.285  
changed lines
  Added in v.1.289


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