Diff for /loncom/homework/lonhomework.pm between versions 1.199 and 1.202

version 1.199, 2005/03/17 21:20:23 version 1.202, 2005/03/31 15:56:13
Line 162  sub send_footer { Line 162  sub send_footer {
     $request->print(&Apache::lontexconvert::footer());      $request->print(&Apache::lontexconvert::footer());
 }  }
   
 $Apache::lonxml::browse='';  sub proctor_checked_in {
       my ($slot)=@_;
       my @allowed=split(",",$slot->{'proctor'});
       foreach my $possible (@allowed) { 
    if ($Apache::lonhomework::history{'resource.checkedin'} eq $possible) {
       return 1;
    }
       }
       return 0;
   }
   
   $Apache::lonxml::browse='';
 sub check_ip_acc {  sub check_ip_acc {
     my ($acc)=@_;      my ($acc)=@_;
     if (!defined($acc) || $acc =~ /^\s*$/) { return 1; }      if (!defined($acc) || $acc =~ /^\s*$/) { return 1; }
Line 211  sub check_ip_acc { Line 221  sub check_ip_acc {
 }  }
   
 sub check_task_access {  sub check_task_access {
     return &check_access;      #does it pass normal muster
       my ($status,$datemsg)=&check_access;
       if ($status eq 'SHOW_ANSWER' ||
    $status eq 'CLOSED' ||
    $status eq 'CANNOT_ANSWER' ||
    $status eq 'INVALID_ACCESS' ||
    $status eq 'UNAVAILABLE') {
    return ($status,$datemsg);
       }
   
       
       my ($id)=@_;
       my @slots=split(':',&Apache::lonnet::EXT("resource.$id.available"));
   #    if (!@slots) {
   # return ($status,$datemsg);
   #    }
       my $slotstatus='NOT_IN_A_SLOT';
       my $returned_slot;
       foreach my $slot (@slots) {
    &Apache::lonxml::debug("getting $slot");
    my %slot=&Apache::lonnet::get_slot($slot);
    &Apache::lonhomework::showhash(%slot);
    if ($slot{'starttime'} < time &&
       $slot{'endtime'} > time &&
       &check_ip_acc($slot{'ip'})) {
       &Apache::lonxml::debug("$slot is good");
       $slotstatus='NEEDS_CHECKIN';
       $returned_slot=\%slot;
       last;
    }
       }
       if ($slotstatus eq 'NEEDS_CHECKIN' &&
    &proctor_checked_in($returned_slot)) {
    &Apache::lonxml::debug("protoctor checked in");
    $slotstatus='CAN_ANSWER';
       }
       return ($slotstatus,$datemsg,$returned_slot);
 }  }
   
 # JB, 9/24/2002: Any changes in this function may require a change  # JB, 9/24/2002: Any changes in this function may require a change
 # in lonnavmaps::resource::getDateStatus.  # in lonnavmaps::resource::getDateStatus.
 sub check_access {  sub check_access {

Removed from v.1.199  
changed lines
  Added in v.1.202


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