Diff for /loncom/homework/lonhomework.pm between versions 1.206 and 1.207

version 1.206, 2005/05/03 00:05:41 version 1.207, 2005/05/10 20:29:26
Line 85  sub get_target { Line 85  sub get_target {
     return ($env{'form.grade_target'});      return ($env{'form.grade_target'});
  } elsif ( defined($env{'form.grade_target'}  )    } elsif ( defined($env{'form.grade_target'}  ) 
   && ($Apache::lonhomework::viewgrades eq 'F' )) {    && ($Apache::lonhomework::viewgrades eq 'F' )) {
     if ($env{'form.grade_target'} eq 'webgrade') {      return ($env{'form.grade_target'});
  if ($Apache::lonhomework::modifygrades eq 'F' ) {   }
     return ($env{'form.grade_target'});   if ($env{'form.webgrade'} &&
  }      $Apache::lonhomework::modifygrades eq 'F') {
     } else {      return ('grade','webgrade');
  return ($env{'form.grade_target'});  
     }  
  }   }
  if ( defined($env{'form.submitted'}) &&   if ( defined($env{'form.submitted'}) &&
      ( !defined($env{'form.resetdata'})) &&       ( !defined($env{'form.resetdata'})) &&
Line 168  sub send_footer { Line 166  sub send_footer {
 }  }
   
 sub proctor_checked_in {  sub proctor_checked_in {
     my ($slot)=@_;      my ($slot_name,$slot)=@_;
     my @allowed=split(",",$slot->{'proctor'});      my @allowed=split(",",$slot->{'proctor'});
     foreach my $possible (@allowed) {       foreach my $possible (@allowed) { 
  if ($Apache::lonhomework::history{'resource.checkedin'} eq $possible) {   if ($Apache::lonhomework::history{'resource.checkedin'} eq $possible &&
       $Apache::lonhomework::history{'resource.checkedin.slot'} eq 
           $slot_name ) {
     return 1;      return 1;
  }   }
     }      }
Line 226  sub check_ip_acc { Line 226  sub check_ip_acc {
 }  }
   
 sub check_task_access {  sub check_task_access {
     #does it pass normal muster      # does it pass normal muster
       # yes we really do want the default args passing
     my ($status,$datemsg)=&check_access;      my ($status,$datemsg)=&check_access;
     if ($status eq 'SHOW_ANSWER' ||      if ($status eq 'SHOW_ANSWER' ||
  $status eq 'CLOSED' ||   $status eq 'CLOSED' ||
Line 239  sub check_task_access { Line 240  sub check_task_access {
  return ($status,$datemsg);   return ($status,$datemsg);
     }      }
           
       if ($Apache::lonhomework::history{'resource.checkedin'}) {
    if ($Apache::lonhomework::history{'resource.status'} eq 'pass' ||
       $Apache::lonhomework::history{'resource.status'} eq 'fail') {
       return ('SHOW_ANSWER');
    }
       }
     my ($id)=@_;      my ($id)=@_;
     my @slots=split(':',&Apache::lonnet::EXT("resource.$id.available"));      my @slots=split(':',&Apache::lonnet::EXT("resource.$id.available"));
 #    if (!@slots) {  #    if (!@slots) {
Line 246  sub check_task_access { Line 253  sub check_task_access {
 #    }  #    }
     my $slotstatus='NOT_IN_A_SLOT';      my $slotstatus='NOT_IN_A_SLOT';
     my ($returned_slot,$slot_name);      my ($returned_slot,$slot_name);
     foreach my $slot (@slots) {      foreach my $slot (sort(@slots)) {
  &Apache::lonxml::debug("getting $slot");   &Apache::lonxml::debug("getting $slot");
  my %slot=&Apache::lonnet::get_slot($slot);   my %slot=&Apache::lonnet::get_slot($slot);
  &Apache::lonhomework::showhash(%slot);   &Apache::lonhomework::showhash(%slot);
Line 261  sub check_task_access { Line 268  sub check_task_access {
  }   }
     }      }
     if ($slotstatus eq 'NEEDS_CHECKIN' &&      if ($slotstatus eq 'NEEDS_CHECKIN' &&
  &proctor_checked_in($returned_slot)) {   &proctor_checked_in($slot_name,$returned_slot)) {
  &Apache::lonxml::debug("protoctor checked in");   &Apache::lonxml::debug("protoctor checked in");
  $slotstatus='CAN_ANSWER';   $slotstatus='CAN_ANSWER';
     }      }
       if ( ($slotstatus eq 'NOT_IN_A_SLOT' || $slotstatus eq 'NEEDS_CHECKIN') && 
    $Apache::lonhomework::history{'resource.checkedin'}) {
    return ('WAITING_FOR_GRADE');
       }
     return ($slotstatus,$datemsg,$slot_name,$returned_slot);      return ($slotstatus,$datemsg,$slot_name,$returned_slot);
 }  }
   

Removed from v.1.206  
changed lines
  Added in v.1.207


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