Diff for /loncom/homework/lonhomework.pm between versions 1.232 and 1.236

version 1.232, 2005/12/22 22:06:54 version 1.236, 2006/02/26 20:01:17
Line 198  sub check_ip_acc { Line 198  sub check_ip_acc {
     my $ip=$ENV{'REMOTE_ADDR'};      my $ip=$ENV{'REMOTE_ADDR'};
     my $name;      my $name;
     foreach my $pattern (split(',',$acc)) {      foreach my $pattern (split(',',$acc)) {
    $pattern =~ s/^\s*//;
    $pattern =~ s/\s*$//;
  if ($pattern =~ /\*$/) {   if ($pattern =~ /\*$/) {
     #35.8.*      #35.8.*
     $pattern=~s/\*//;      $pattern=~s/\*//;
Line 295  sub check_slot_access { Line 297  sub check_slot_access {
  $slotstatus='CAN_ANSWER';   $slotstatus='CAN_ANSWER';
     }      }
   
     my ($got_grade,$checkedin);      my ($is_correct,$got_grade,$checkedin);
     if ($type eq 'Task') {      if ($type eq 'Task') {
  my $version=$Apache::lonhomework::history{'resource.0.version'};   my $version=$Apache::lonhomework::history{'resource.0.version'};
  $got_grade =    $got_grade = 
     ($Apache::lonhomework::history{"resource.$version.0.status"}       ($Apache::lonhomework::history{"resource.$version.0.status"} 
      =~ /^(?:pass|fail)$/);       =~ /^(?:pass|fail)$/);
    $is_correct =  
       ($Apache::lonhomework::history{"resource.$version.0.status"} eq 'pass'
        || $Apache::lonhomework::history{"resource.0.solved"} =~ /^correct_/ );
  $checkedin =   $checkedin =
     $Apache::lonhomework::history{"resource.$version.0.checkedin"};      $Apache::lonhomework::history{"resource.$version.0.checkedin"};
     } elsif ($type eq 'problem') {      } elsif ($type eq 'problem') {
Line 308  sub check_slot_access { Line 313  sub check_slot_access {
  $checkedin = $Apache::lonhomework::history{"resource.0.checkedin"};   $checkedin = $Apache::lonhomework::history{"resource.0.checkedin"};
     }      }
           
       &Apache::lonxml::debug(" slot is $slotstatus checkedin ($checkedin) got_grade ($got_grade) is_correct ($is_correct)");
       
       # has a current checked in recrd, but hasn't got a grade, must be awaiting
       # a grade
       if ($checkedin 
    && !$got_grade) {
    return ('WAITING_FOR_GRADE');
       }
   
     if ($slotstatus eq 'NOT_IN_A_SLOT'       if ($slotstatus eq 'NOT_IN_A_SLOT' 
  && $checkedin ) {   && $checkedin ) {
   
Line 318  sub check_slot_access { Line 332  sub check_slot_access {
  }   }
   
     }      }
       if ( $is_correct) {
    return ('SHOW_ANSWER');
       }
     if ( $status eq 'CANNOT_ANSWER' &&       if ( $status eq 'CANNOT_ANSWER' && 
  ($slotstatus ne 'NEEDS_CHECKIN' && $slotstatus ne 'NOT_IN_A_SLOT')) {   ($slotstatus ne 'NEEDS_CHECKIN' && $slotstatus ne 'NOT_IN_A_SLOT')) {
  return ($status,$datemsg);   return ($status,$datemsg);
Line 988  sub handler { Line 1005  sub handler {
     &Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'});      &Apache::lonxml::debug("Problem Mode ".$env{'form.problemmode'});
     my ($symb) = &Apache::lonxml::whichuser();      my ($symb) = &Apache::lonxml::whichuser();
     &Apache::lonxml::debug('symb is '.$symb);      &Apache::lonxml::debug('symb is '.$symb);
     if ($env{'request.state'} eq "construct" || $symb eq '') {  
  if ($env{'form.resetdata'} eq &mt('Reset Submissions') ||  
     $env{'form.resetdata'} eq &mt('New Problem Variation') ||  
     $env{'form.newrandomization'} eq &mt('New Randomization')) {  
     my ($symb,$courseid,$domain,$name) = &Apache::lonxml::whichuser();  
     &Apache::lonnet::tmpreset($symb,'',$domain,$name);  
     &Apache::lonxml::debug("Attempt reset");  
  }  
     }  
     if ($env{'request.state'} eq "construct") {      if ($env{'request.state'} eq "construct") {
  if ( -e $file ) {   if ( -e $file ) {
     &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},      &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},

Removed from v.1.232  
changed lines
  Added in v.1.236


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