Diff for /loncom/homework/lonhomework.pm between versions 1.246 and 1.247

version 1.246, 2006/05/12 03:46:54 version 1.247, 2006/05/15 19:29:17
Line 383  sub check_access { Line 383  sub check_access {
   
  foreach my $temp ("opendate","duedate","answerdate") {   foreach my $temp ("opendate","duedate","answerdate") {
     $lastdate = $date;      $lastdate = $date;
     $date = &Apache::lonnet::EXT("resource.$id.$temp");      if ($temp eq 'duedate') {
    $date = &due_date($id);
       } else {
    $date = &Apache::lonnet::EXT("resource.$id.$temp");
       }
       
     my $thistype = &Apache::lonnet::EXT("resource.$id.$temp.type");      my $thistype = &Apache::lonnet::EXT("resource.$id.$temp.type");
     if ($thistype =~ /^(con_lost|no_such_host)/ ||      if ($thistype =~ /^(con_lost|no_such_host)/ ||
  $date     =~ /^(con_lost|no_such_host)/) {   $date     =~ /^(con_lost|no_such_host)/) {
Line 451  sub check_access { Line 456  sub check_access {
     &Apache::lonxml::debug("looking for accesstime $first_access");      &Apache::lonxml::debug("looking for accesstime $first_access");
     if (!$first_access) {      if (!$first_access) {
  $status='NOT_YET_VIEWED';   $status='NOT_YET_VIEWED';
  $datemsg=&seconds_to_human_length($interval);   my $due_date = &due_date($id);
     } else {   $datemsg=&seconds_to_human_length($due_date-time);
  my $newdate=localtime($first_access+$interval);  
  if (time > ($first_access+$interval)) {  
     $status='CLOSED';  
     $datemsg = &mt("was due on")." $newdate".&mt(", and answers will be available on")." $date";  
  } else {  
     $datemsg = &mt("is due at")." $newdate";  
  }  
     }      }
  }   }
     }      }
   
   #if (($status ne 'CLOSED') && ($Apache::lonhomework::type eq 'exam') &&    #if (($status ne 'CLOSED') && ($Apache::lonhomework::type eq 'exam') &&
   #    (!$Apache::lonhomework::history{"resource.0.outtoken"})) {    #    (!$Apache::lonhomework::history{"resource.0.outtoken"})) {
   #    return ('UNCHECKEDOUT','needs to be checked out');    #    return ('UNCHECKEDOUT','needs to be checked out');
Line 478  sub check_access { Line 477  sub check_access {
   
     return ($status,$datemsg);      return ($status,$datemsg);
 }  }
   # this should work exactly like the copy in lonnavmaps.pm
 sub due_date {  sub due_date {
     my ($part_id,$symb)=@_;      my ($part_id,$symb)=@_;
     my $date;      my $date;
     my $interval= &Apache::lonnet::EXT("resource.$part_id.interval",$symb);      my $interval= &Apache::lonnet::EXT("resource.$part_id.interval",$symb);
     if ($interval) {      &Apache::lonxml::debug("looking for interval $part_id $symb $interval");
       my $due_date= &Apache::lonnet::EXT("resource.$part_id.duedate",$symb);
       &Apache::lonxml::debug("looking for due_date $part_id $symb $due_date");
       if (defined($interval)) {
  my $first_access=&Apache::lonnet::get_first_access('map',$symb);   my $first_access=&Apache::lonnet::get_first_access('map',$symb);
  if ($first_access) { $date = $first_access+$interval; }   if (defined($first_access)) {
     }      $interval = $first_access+$interval;
     if (!defined($date)) {      $date = ($interval < $due_date)? $interval : $due_date;
  $date = &Apache::lonnet::EXT("resource.$part_id.duedate",$symb);   } else {
       $date = $due_date;
    }
       } else {
    $date = $due_date;
     }      }
     return $date      return $date
 }  }

Removed from v.1.246  
changed lines
  Added in v.1.247


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