Diff for /loncom/homework/lonhomework.pm between versions 1.349.2.2 and 1.349.2.3

version 1.349.2.2, 2015/04/14 21:35:56 version 1.349.2.3, 2015/05/26 13:25:52
Line 51  use Apache::functionplotresponse(); Line 51  use Apache::functionplotresponse();
 use Apache::drawimage();  use Apache::drawimage();
 use Apache::Constants qw(:common);  use Apache::Constants qw(:common);
 use Apache::loncommon();  use Apache::loncommon();
   use Apace::lonparmset();
 use Apache::lonlocal;  use Apache::lonlocal;
 use Time::HiRes qw( gettimeofday tv_interval );  use Time::HiRes qw( gettimeofday tv_interval );
 use HTML::Entities();  use HTML::Entities();
Line 1331  sub update_construct_style { Line 1332  sub update_construct_style {
     }      }
 }  }
   
 # Sets timer to zero for the entire folder containing the current resource for the  #
 # current user.  # Sets interval for current user so time left will be zero, either for the entire folder 
   # containing the current resource, or just the resource, depending on value of first item
   # in interval array retrieved from EXT("resource.0.interval");
   #
 sub zero_timer {  sub zero_timer {
     my $symb = shift;      my ($symb) = @_;
     my $first_access = &Apache::lonnet::get_first_access("map",$symb);      my ($hastimeleft,$first_access,$now);
     my $done_time = time() - $first_access;      my @interval=&Apache::lonnet::EXT("resource.0.interval");
     &Apache::lonparmset::storeparm_by_symb($symb,"0_interval","2",$done_time,      if (@interval > 1) {
             "date_interval",$env{'user.name'},$env{'user.domain'},,'',);          if ($interval[1] eq 'course') {
               return;
           } else {
               my $now = time;
               my $first_access=&Apache::lonnet::get_first_access($interval[1],$symb);
               if ($first_access > 0) {
                   if ($first_access+$interval[0] > $now) {
                       my $done_time = $now - $first_access;
                       my $snum = 1;
                       if ($interval[1] eq 'map') {
                           $snum = 2;
                       }
                       my $result = 
                           &Apache::lonparmset::storeparm_by_symb_inner($symb,'0_interval',
                                                                        $snum,$done_time,
                                                                        'date_interval',
                                                                        $env{'user.name'},
                                                                        $env{'user.domain'});
                       return $result;
                   }
               }
           }
       }
       return;
 }  }
   
   
 sub handler {  sub handler {
     #my $t0 = [&gettimeofday()];      #my $t0 = [&gettimeofday()];
     my $request=$_[0];      my $request=$_[0];
   
     my ($symb) = &Apache::lonnet::whichuser();  
   
     # Set the event timer to zero if the "done button" was clicked.  The button is   
     # part of the doneButton form created in lonmenu.pm  
     if ($env{"form.done"} eq "true") {  
         &zero_timer($symb);  
         $env{"form.done"} = "";  
     }  
   
     $Apache::lonxml::request=$request;      $Apache::lonxml::request=$request;
     $Apache::lonxml::debug=$env{'user.debug'};      $Apache::lonxml::debug=$env{'user.debug'};
     $env{'request.uri'}=$request->uri;      $env{'request.uri'}=$request->uri;
Line 1377  sub handler { Line 1394  sub handler {
  &unset_permissions();   &unset_permissions();
  return OK;   return OK;
     }      }
   
     &Apache::lonxml::debug("Permissions:$Apache::lonhomework::browse:$Apache::lonhomework::viewgrades:$Apache::lonhomework::modifygrades:$Apache::lonhomework::queuegrade");      &Apache::lonxml::debug("Permissions:$Apache::lonhomework::browse:$Apache::lonhomework::viewgrades:$Apache::lonhomework::modifygrades:$Apache::lonhomework::queuegrade");
     &Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'});      &Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'});
       my ($symb) = &Apache::lonnet::whichuser();
     &Apache::lonxml::debug('symb is '.$symb);      &Apache::lonxml::debug('symb is '.$symb);
     if ($env{'request.state'} eq "construct") {      if ($env{'request.state'} eq "construct") {
  if ( -e $file ) {   if ( -e $file ) {
Line 1406  sub handler { Line 1425  sub handler {
     &newproblem($request);      &newproblem($request);
  }   }
     } else {      } else {
           # Set the event timer to zero if the "done button" was clicked.  The button is
           # part of the doneButton form created in lonmenu.pm
           if ($symb && $env{'form.LC_interval_done'} eq 'true') {  
               &zero_timer($symb);
               undef($env{'form.LC_interval_done'});
           }
  # just render the page normally outside of construction space   # just render the page normally outside of construction space
  &Apache::lonxml::debug("not construct");   &Apache::lonxml::debug("not construct");
  &renderpage($request,$file);   &renderpage($request,$file);

Removed from v.1.349.2.2  
changed lines
  Added in v.1.349.2.3


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