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

version 1.228, 2005/12/15 23:23:48 version 1.236, 2006/02/26 20:01:17
Line 171  sub proctor_checked_in { Line 171  sub proctor_checked_in {
           
     my $key;      my $key;
     if ($type eq 'Task') {      if ($type eq 'Task') {
  my $version=$Apache::lonhomework::history{'resource.version'};   my $version=$Apache::lonhomework::history{'resource.0.version'};
  $key ="resource.$version.checkedin";   $key ="resource.$version.0.checkedin";
     } elsif ($type eq 'problem') {      } elsif ($type eq 'problem') {
  $key ='resource.0.checkedin';   $key ='resource.0.checkedin';
     }      }
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 260  sub check_slot_access { Line 262  sub check_slot_access {
           
     if ($type eq 'Task') {      if ($type eq 'Task') {
  my $version=$Apache::lonhomework::history{'resource.version'};   my $version=$Apache::lonhomework::history{'resource.version'};
  if ($Apache::lonhomework::history{"resource.$version.checkedin"} &&   if ($Apache::lonhomework::history{"resource.$version.0.checkedin"} &&
     $Apache::lonhomework::history{"resource.$version.status"} eq 'pass') {      $Apache::lonhomework::history{"resource.$version.0.status"} eq 'pass') {
     return ('SHOW_ANSWER');      return ('SHOW_ANSWER');
  }   }
     }      }
Line 295  sub check_slot_access { Line 297  sub check_slot_access {
  $slotstatus='CAN_ANSWER';   $slotstatus='CAN_ANSWER';
     }      }
   
     my ($pass_status,$checkedin);      my ($is_correct,$got_grade,$checkedin);
     if ($type eq 'Task') {      if ($type eq 'Task') {
  my $version=$Apache::lonhomework::history{'resource.version'};   my $version=$Apache::lonhomework::history{'resource.0.version'};
  $pass_status =    $got_grade = 
     $Apache::lonhomework::history{"resource.$version.status"} eq 'fail';      ($Apache::lonhomework::history{"resource.$version.0.status"} 
        =~ /^(?: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.checkedin"};      $Apache::lonhomework::history{"resource.$version.0.checkedin"};
     } elsif ($type eq 'problem') {      } elsif ($type eq 'problem') {
  $pass_status = 1;   $got_grade = 1;
  $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 ) {
   
  if ($pass_status) {   if ($got_grade) {
     return ('SHOW_ANSWER');      return ('SHOW_ANSWER');
  } else {   } else {
     return ('WAITING_FOR_GRADE');      return ('WAITING_FOR_GRADE');
  }   }
   
     }      }
       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 764  sub editxmlmode { Line 782  sub editxmlmode {
     &Apache::structuretags::remember_problem_state().'      &Apache::structuretags::remember_problem_state().'
             <input type="hidden" name="problemmode" value="'.&mt('EditXML').'" />              <input type="hidden" name="problemmode" value="'.&mt('EditXML').'" />
             <input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" />              <input type="submit" name="problemmode" accesskey="d" value="'.&mt('Discard Edits and View').'" />
             <input type="submit" name="problemmode" accesskey="e" value="'.&mt('Edit').'" />              <input type="submit" '.&Apache::edit::submit_ask_anyway().'name="problemmode" accesskey="e" value="'.&mt('Edit').'" />
             <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />              <input type="submit" name="Undo" accesskey="u" value="'.&mt('undo').'" />
             <hr />              <hr />
             <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes').'" />              <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes').'" />
Line 772  sub editxmlmode { Line 790  sub editxmlmode {
             <hr />              <hr />
             ' . $xml_help . '              ' . $xml_help . '
             <textarea '.&Apache::edit::element_change_detection().' style="width:100%" rows="'.$rows.'" cols="'.$cols.'" name="editxmltext">'.              <textarea '.&Apache::edit::element_change_detection().' style="width:100%" rows="'.$rows.'" cols="'.$cols.'" name="editxmltext">'.
     &HTML::Entities::encode($problem,'<>&"').'</textarea>      &HTML::Entities::encode($problem,'<>&"').'</textarea><br />
               <input type="submit" name="submit" accesskey="s" value="'.&mt('Submit Changes').'" />
               <input type="submit" name="submit" accesskey="v" value="'.&mt('Submit Changes and View').'" />
             </form></body></html>';              </form></body></html>';
  &Apache::lonxml::add_messages(\$result);   &Apache::lonxml::add_messages(\$result);
  $request->print($result);   $request->print($result);
Line 985  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.228  
changed lines
  Added in v.1.236


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