Diff for /loncom/homework/structuretags.pm between versions 1.290 and 1.292

version 1.290, 2005/04/25 21:40:33 version 1.292, 2005/06/03 18:17:57
Line 96  sub body_tag_start { Line 96  sub body_tag_start {
     }      }
     return $body_tag_start;      return $body_tag_start;
 }  }
   
 sub page_start {  sub page_start {
     my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;      my ($target,$token,$tagstack,$parstack,$parser,$safeeval)=@_;
     my %found;      my %found;
Line 126  sub page_start { Line 127  sub page_start {
  my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,   my $bgcolor=&Apache::lonxml::get_param('bgcolor',$parstack,
        $safeeval);         $safeeval);
  $body_tag_start=&body_tag_start($background,$bgcolor);   $body_tag_start=&body_tag_start($background,$bgcolor);
  if ($target eq 'web' && $env{'request.state'} ne 'construct') {   if ( ($target eq 'web' || $target eq 'webgrade')
        && $env{'request.state'} ne 'construct') {
     my ($symb,undef,undef,undef,$publicuser)=      my ($symb,undef,undef,undef,$publicuser)=
  &Apache::lonxml::whichuser();   &Apache::lonxml::whichuser();
     if ($symb eq '' && !$publicuser) {      if ($symb eq '' && !$publicuser) {
Line 370  sub store_aggregates { Line 372  sub store_aggregates {
         }          }
         if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) {          if ($Apache::lonhomework::results{'resource.'.$part.'.tries'} == 1) {
             $aggregate{$symb."\0".$part."\0users"} = 1;              $aggregate{$symb."\0".$part."\0users"} = 1;
           } else {
               my $last_reset = &get_last_reset($symb,$cdomain,$cname,$part); 
               if ($last_reset) {
                   if (&get_num_tries($last_reset,$part) == 0) {
                       $aggregate{$symb."\0".$part."\0users"} = 1;
                   }
               }
         }          }
         $aggregate{$symb."\0".$part."\0attempts"} = 1;          $aggregate{$symb."\0".$part."\0attempts"} = 1;
     }      }
     if (%aggregate) {      if (keys (%aggregate) > 0) {
  &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,   &Apache::lonnet::cinc('nohist_resourcetracker',\%aggregate,
       $cdomain,$cname);                               $cdomain,$cname);
       }
   }
   
   # ----------- Timestamp of last reset of aggregates
   sub get_last_reset {
       my ($symb,$cdomain,$cname,$part) =@_;
       my $last_reset = '';
       my %resethash = &Apache::lonnet::restore($symb,'nohist_resourcetracker',$cdomain,$cname);
       if ($resethash{'version'}) {
           for (my $version=$resethash{'version'};$version>=1;$version--) {
               if (exists($resethash{$version.':'.$part."\0".'prev_attempts'})) {
                   $last_reset = $resethash{$version.':timestamp'};
                   last;
               }
           }
       }
       return $last_reset;
   }
   
   # ----------- Provides number of tries since last reset of aggregates
   sub get_num_tries {
       my ($last_reset,$part) = @_;
       my $timestamp = '';
       my $num_tries = 0;
       if ($Apache::lonhomework::history{'version'}) {
           for (my $version=$Apache::lonhomework::history{'version'};$version>=1;$version--) {
               if (exists($Apache::lonhomework::history{$version.':resource.'.$part.'.solved'})) {
                   $timestamp = $Apache::lonhomework::history{$version.':timestamp'};
                   if ($timestamp > $last_reset) {
                       $num_tries ++;
                   } else {
                       last;
                   }
               }
           }
     }      }
       return $num_tries;
 }  }
   
   
 sub checkout_msg {  sub checkout_msg {
     my %lt=&Apache::lonlocal::texthash(       my %lt=&Apache::lonlocal::texthash( 
  'resource'=>'The resource needs to be checked out',   'resource'=>'The resource needs to be checked out',

Removed from v.1.290  
changed lines
  Added in v.1.292


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