Diff for /loncom/homework/inputtags.pm between versions 1.135 and 1.150

version 1.135, 2004/03/12 21:14:54 version 1.150, 2004/09/09 09:52:58
Line 65  sub initialize_inputtags { Line 65  sub initialize_inputtags {
     @Apache::inputtags::importlist=();      @Apache::inputtags::importlist=();
     # just used to note whether we have seen a response that isn't in a part      # just used to note whether we have seen a response that isn't in a part
     $Apache::inputtags::response_with_no_part=0;      $Apache::inputtags::response_with_no_part=0;
       # storage location so the begin <*response> tag can generate the correct
       # answer string for display by the <textline />
       %Apache::inputtags::answertxt=();
 }  }
   
 sub check_for_duplicate_ids {  sub check_for_duplicate_ids {
Line 118  sub start_textfield { Line 121  sub start_textfield {
  $Apache::lonxml::evaluate--;   $Apache::lonxml::evaluate--;
  if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {   if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
     my $partid=$Apache::inputtags::part;      my $partid=$Apache::inputtags::part;
     my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$resid.submission"});      my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$resid.submission"},'<>&"');
     my $cols = &Apache::lonxml::get_param('cols',$parstack,$safeeval);      my $cols = &Apache::lonxml::get_param('cols',$parstack,$safeeval);
     if ( $cols eq '') { $cols = 80; }      if ( $cols eq '') { $cols = 80; }
     my $rows = &Apache::lonxml::get_param('rows',$parstack,$safeeval);      my $rows = &Apache::lonxml::get_param('rows',$parstack,$safeeval);
     if ( $rows eq '') { $rows = 10; }      if ( $rows eq '') { $rows = 16; }
     my $addchars=&Apache::lonxml::get_param('addchars',$parstack,$safeeval);      my $addchars=&Apache::lonxml::get_param('addchars',$parstack,$safeeval);
     $result='';      $result='';
     if ($addchars) {      if ($addchars) {
  $result.=&addchars('HWVAL_'.$resid,$addchars);   $result.=&addchars('HWVAL_'.$resid,$addchars);
     }      }
     $result.= '<textarea wrap="hard" name="HWVAL_'.$resid.'" '.      push @Apache::lonxml::htmlareafields,'HWVAL_'.$resid;
       $result.= '<textarea wrap="hard" name="HWVAL_'.$resid.'" id="HWVAL_'.$resid.'" '.
  "rows=\"$rows\" cols=\"$cols\">".$oldresponse;   "rows=\"$rows\" cols=\"$cols\">".$oldresponse;
     if ($oldresponse ne '') {      if ($oldresponse ne '') {
   
  #get rid of any startup text if the user has already responded   #get rid of any startup text if the user has already responded
  &Apache::lonxml::get_all_text("/textfield",$parser);   &Apache::lonxml::get_all_text("/textfield",$parser);
     }      }
Line 210  sub start_textline { Line 215  sub start_textline {
     if ($size eq '') { $size=20; } else {      if ($size eq '') { $size=20; } else {
  if ($size < 20) { $maxlength=$size; }   if ($size < 20) { $maxlength=$size; }
     }      }
     my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"});      my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"},'<>&"');
     if ($Apache::lonhomework::type ne 'exam') {      if ($Apache::lonhomework::type ne 'exam') {
  my $addchars=&Apache::lonxml::get_param('addchars',$parstack,$safeeval);   my $addchars=&Apache::lonxml::get_param('addchars',$parstack,$safeeval);
  $result='';   $result='';
Line 222  sub start_textline { Line 227  sub start_textline {
     }      }
  } else {   } else {
     #right or wrong don't show what was last typed in.      #right or wrong don't show what was last typed in.
     #$result='<i>'.$oldresponse.'</i>';      $result='<i>'.$Apache::inputtags::answertxt{$id}.'</i>';
     $result='';      #$result='';
  }   }
     } elsif ($target eq 'edit') {      } elsif ($target eq 'edit') {
  $result=&Apache::edit::tag_start($target,$token);   $result=&Apache::edit::tag_start($target,$token);
Line 257  sub start_hiddenline { Line 262  sub start_hiddenline {
  if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {   if ($Apache::inputtags::status[-1] eq 'CAN_ANSWER') {
     my $partid=$Apache::inputtags::part;      my $partid=$Apache::inputtags::part;
     my $id=$Apache::inputtags::response[-1];      my $id=$Apache::inputtags::response[-1];
     my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"});      my $oldresponse = &HTML::Entities::encode($Apache::lonhomework::history{"resource.$partid.$id.submission"},'<>&"');
     if ($Apache::lonhomework::type ne 'exam') {      if ($Apache::lonhomework::type ne 'exam') {
  $result= '<input type="hidden" name="HWVAL_'.$id.'" value="'.   $result= '<input type="hidden" name="HWVAL_'.$id.'" value="'.
     $oldresponse.'" />';      $oldresponse.'" />';
Line 277  sub end_hiddenline { Line 282  sub end_hiddenline {
     return "";      return "";
 }  }
   
   sub checkstatus {
       my ($value,$awardref,$msgref)=@_;
       for (my $i=0;$i<=$#$awardref;$i++) {
    if ($$awardref[$i] eq $value) {
       return ($$awardref[$i],$$msgref[$i]);
    }
       }
       return(undef,undef);
   }
   
 sub finalizeawards {  sub finalizeawards {
     my $result='';      my ($awardref,$msgref)=@_;
       my $result=undef;
     my $award;      my $award;
     if ($#_ == '-1') { $result = "NO_RESPONSE"; }      my $msg;
       if ($#$awardref == -1) { $result = "NO_RESPONSE"; }
     if ($result eq '' ) {      if ($result eq '' ) {
  my $blankcount;   my $blankcount;
  foreach $award (@_) {   foreach $award (@$awardref) {
     if ($award eq '') {      if ($award eq '') {
  $result='MISSING_ANSWER';   $result='MISSING_ANSWER';
  $blankcount++;   $blankcount++;
     }      }
  }   }
  if ($blankcount == ($#_ + 1)) { $result = 'NO_RESPONSE'; }   if ($blankcount == ($#$awardref + 1)) { $result = 'NO_RESPONSE'; }
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'MISSING_ANSWER') {$result='MISSING_ANSWER'; last;}}  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'ERROR') {$result='ERROR'; last;}}  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'NO_RESPONSE') {$result='NO_RESPONSE'; last;} }  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'TOO_LONG') {$result='TOO_LONG'; last;}}  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) {   
     if ($award eq 'UNIT_FAIL' ||  
  $award eq 'NO_UNIT' ||  
  $award eq 'UNIT_NOTNEEDED') {  
  $result=$award; last;  
     }  
  }  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) {   
     if ($award eq 'WANTED_NUMERIC' ||   
  $award eq 'BAD_FORMULA') {$result=$award; last;}  
  }  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'SIG_FAIL') {$result=$award; last;} }  
     }      }
     if ($result eq '' ) {      if (defined($result)) { return ($result,$msg); }
  foreach $award (@_) { if ($award eq 'INCORRECT') {$result=$award; last;} }      foreach my $possibleaward ('MISSING_ANSWER', 'ERROR', 'NO_RESPONSE',
     }         'TOO_LONG', 'UNIT_INVALID_INSTRUCTOR',
     if ($result eq '' ) {         'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE',
  foreach $award (@_) { if ($award eq 'MISORDERED_RANK') {$result=$award; last;} }         'UNIT_FAIL', 'NO_UNIT',
     }         'UNIT_NOTNEEDED', 'WANTED_NUMERIC',
     if ($result eq '' ) {         'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT', 
  foreach $award (@_) { if ($award eq 'INVALID_FILETYPE') {$result=$award; last;} }         'MISORDERED_RANK', 'INVALID_FILETYPE',
     }         'DRAFT', 'SUBMITTED', 'ASSIGNED_SCORE',
     if ($result eq '' ) {         'APPROX_ANS', 'EXACT_ANS') {
  foreach $award (@_) { if ($award eq 'DRAFT') {$result=$award; last;} }   ($result,$msg)=&checkstatus($possibleaward,$awardref,$msgref);
    if (defined($result)) { return ($result,$msg); }
     }      }
     if ($result eq '' ) {      return ('ERROR',undef);
  foreach $award (@_) { if ($award eq 'SUBMITTED') {$result=$award; last;} }  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'ASSIGNED_SCORE') {$result=$award; last;} }  
     }  
     if ($result eq '' ) {  
  foreach $award (@_) { if ($award eq 'APPROX_ANS') {$result=$award; last;} }  
     }  
     if ($result eq '' ) { $result='EXACT_ANS'; }  
     return $result  
 }  }
   
 sub decideoutput {  sub decideoutput {
     my ($award,$solved,$previous,$target)=@_;      my ($award,$awardmsg,$solved,$previous,$target)=@_;
     my $message='';      my $message='';
     my $button=0;      my $button=0;
     my $previousmsg;      my $previousmsg;
     my $bgcolor='orange';      my $bgcolor='orange';
       my $added_computer_text=0;
     my %possiblecolors =      my %possiblecolors =
  ( 'correct' => '#aaffaa',   ( 'correct' => '#aaffaa',
   'charged_try' => '#ffaaaa',    'charged_try' => '#ffaaaa',
Line 368  sub decideoutput { Line 347  sub decideoutput {
  $message = '\textbf{'.&mt('You are correct.').'}';   $message = '\textbf{'.&mt('You are correct.').'}';
     } else {      } else {
  $message = "<b>".&mt('You are correct.')."</b>";   $message = "<b>".&mt('You are correct.')."</b>";
    $message.=" ".&mt("Computer's answer now shown above.");
     }      }
       $added_computer_text=1;
     unless ($ENV{'course.'.      unless ($ENV{'course.'.
      $ENV{'request.course.id'}.       $ENV{'request.course.id'}.
      '.disable_receipt_display'} eq 'yes') {        '.disable_receipt_display'} eq 'yes') { 
Line 391  sub decideoutput { Line 372  sub decideoutput {
  $previousmsg='';   $previousmsg='';
     } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {      } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {
  if ($solved =~ /^incorrect/ || $solved eq '') {   if ($solved =~ /^incorrect/ || $solved eq '') {
     $message = &mt("Incorrect");      $message = &mt("Incorrect").".";
     $bgcolor=$possiblecolors{'charged_try'};      $bgcolor=$possiblecolors{'charged_try'};
     $button=1;      $button=1;
  } else {   } else {
     $message = "<b>".&mt('You are correct.')."</b>";      if ($target eq 'tex') {
    $message = '\textbf{'.&mt('You are correct.').'}';
       } else {
    $message = "<b>".&mt('You are correct.')."</b>";
    $message.=" ".&mt("Computer's answer now shown above.");
       }
       $added_computer_text=1;
     unless ($ENV{'course.'.      unless ($ENV{'course.'.
      $ENV{'request.course.id'}.       $ENV{'request.course.id'}.
      '.disable_receipt_display'} eq 'yes') {        '.disable_receipt_display'} eq 'yes') { 
Line 439  sub decideoutput { Line 426  sub decideoutput {
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'SIG_FAIL') {      } elsif ($award eq 'SIG_FAIL') {
  $message = &mt("Significant figures are incorrect, submission was not graded.");# you provided %s significant figures";   my ($used,$min,$max)=split(':',$awardmsg);
    my $word;
    if ($used < $min) { $word=&mt('more'); }
    if ($used > $max) { $word=&mt('fewer'); }
    $message = &mt("Submission not graded.  Use [_2] digits.",$used,$word);
    $bgcolor=$possiblecolors{'not_charged_try'};
    $button=1;
       } elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') {
    $message = &mt('Error in instructor specifed unit. This error has been reported to the instructor.', $awardmsg);
    if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
    $bgcolor=$possiblecolors{'not_charged_try'};
    $button=1;
       } elsif ($award eq 'UNIT_INVALID_STUDENT') {
    $message = &mt('Unable to interpret units. Computer reads units as "[_1]"','<tt>'.$awardmsg.'</tt>.');
    if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'UNIT_FAIL') {      } elsif ($award eq 'UNIT_FAIL' || $award eq 'UNIT_IRRECONCIBLE') {
  $message = &mt("Units incorrect.");   $message = &mt('Incompatible units. No conversion found between "[_1]" and the required units ','<tt>'.$awardmsg.'</tt>.');
  if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} #Computer reads units as %s";   if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units');} 
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'UNIT_NOTNEEDED') {      } elsif ($award eq 'UNIT_NOTNEEDED') {
  $message = &mt("Only a number required.");# Computer reads units of %s";   $message = &mt('Only a number required. Computer reads units of "[_1]"','<tt>'.$awardmsg.'</tt>.');
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'NO_UNIT') {      } elsif ($award eq 'NO_UNIT') {
  $message = &mt("Units required");   $message = &mt("Units required").'.';
  if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};   if ($target ne 'tex') {$message.=&Apache::loncommon::help_open_topic('Physical_Units')};
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
Line 461  sub decideoutput { Line 462  sub decideoutput {
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'INCORRECT') {      } elsif ($award eq 'INCORRECT') {
  $message = &mt("Incorrect");   $message = &mt("Incorrect").'.';
  $bgcolor=$possiblecolors{'charged_try'};   $bgcolor=$possiblecolors{'charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'SUBMITTED') {      } elsif ($award eq 'SUBMITTED') {
Line 469  sub decideoutput { Line 470  sub decideoutput {
  $bgcolor=$possiblecolors{'correct'};   $bgcolor=$possiblecolors{'correct'};
  $button=1;   $button=1;
     } elsif ($award eq 'DRAFT') {      } elsif ($award eq 'DRAFT') {
  $message = "A draft copy has been saved.";   $message = &mt("A draft copy has been saved.");
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'ASSIGNED_SCORE') {      } elsif ($award eq 'ASSIGNED_SCORE') {
  $message = "A score has been assigned.";   $message = &mt("A score has been assigned.");
  $bgcolor=$possiblecolors{'correct'};   $bgcolor=$possiblecolors{'correct'};
  $button=0;   $button=0;
       } elsif ($award eq '') {
    $bgcolor=$possiblecolors{'not_charged_try'};
    $button=1;
     } else {      } else {
  $message = &mt("Unknown message").": $award";   $message = &mt("Unknown message").": $award";
  $button=1;   $button=1;
Line 486  sub decideoutput { Line 490  sub decideoutput {
  $bgcolor=$possiblecolors{'correct'};   $bgcolor=$possiblecolors{'correct'};
  $button=1;   $button=1;
     }      }
       if ($Apache::inputtags::status[-1] eq 'SHOW_ANSWER' && 
    !$added_computer_text && $target ne 'tex') {
    $message.=" ".&mt("Computer's answer now shown above.");
    $added_computer_text=1;
       }
     return ($button,$bgcolor,$message,$previousmsg);      return ($button,$bgcolor,$message,$previousmsg);
 }  }
   
Line 499  sub removealldata { Line 508  sub removealldata {
     }      }
 }  }
   
   sub hidealldata {
       my ($id)=@_;
       foreach my $key (keys(%Apache::lonhomework::results)) {
    if (($key =~ /^resource\.\Q$id\E\./) && ($key !~ /\.collaborators$/)) {
       &Apache::lonxml::debug("Hidding $key");
       my $newkey=$key;
       $newkey=~s/^(resource\.\Q$id\E\.[^\.]+\.)(.*)$/${1}hidden${2}/;
       $Apache::lonhomework::results{$newkey}=
    $Apache::lonhomework::results{$key};
       delete($Apache::lonhomework::results{$key});
    }
       }
   }
   
 sub setgradedata {  sub setgradedata {
     my ($award,$id,$previously_used) = @_;      my ($award,$msg,$id,$previously_used) = @_;
     # if the student already has it correct, don't modify the status      # if the student already has it correct, don't modify the status
       if ($Apache::lonhomework::scantronmode && defined($ENV{'form.CODE'})) {
    $Apache::lonhomework::results{"resource.CODE"}=$ENV{'form.CODE'};
       }
     if (!$Apache::lonhomework::scantronmode &&      if (!$Apache::lonhomework::scantronmode &&
  $Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&   $Apache::inputtags::status['-1'] ne 'CAN_ANSWER' &&
  $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') {   $Apache::inputtags::status['-1'] ne 'CANNOT_ANSWER') {
Line 569  sub setgradedata { Line 595  sub setgradedata {
  $Apache::lonhomework::results{"resource.$id.awarded"} = 0;   $Apache::lonhomework::results{"resource.$id.awarded"} = 0;
     }      }
  }   }
    if (defined($msg)) {
       $Apache::lonhomework::results{"resource.$id.awardmsg"} = $msg;
    }
  # did either of the overall awards chage? If so ignore the    # did either of the overall awards chage? If so ignore the 
  # previous check   # previous check
  if (($Apache::lonhomework::results{"resource.$id.awarded"} eq   if (($Apache::lonhomework::results{"resource.$id.awarded"} eq
Line 608  sub grade { Line 636  sub grade {
     my $id = $Apache::inputtags::part;      my $id = $Apache::inputtags::part;
     my $response='';      my $response='';
     if ( defined $ENV{'form.submitted'}) {      if ( defined $ENV{'form.submitted'}) {
  my @awards = ();   my (@awards,@msgs);
  foreach $response (@Apache::inputtags::response) {   foreach $response (@Apache::inputtags::response) {
     &Apache::lonxml::debug("looking for response.$id.$response.awarddetail");      &Apache::lonxml::debug("looking for response.$id.$response.awarddetail");
     my $value=$Apache::lonhomework::results{"resource.$id.$response.awarddetail"};      my $value=$Apache::lonhomework::results{"resource.$id.$response.awarddetail"};
     &Apache::lonxml::debug("keeping $value from $response for $id");      &Apache::lonxml::debug("keeping $value from $response for $id");
     push (@awards,$value);      push (@awards,$value);
       $value=$Apache::lonhomework::results{"resource.$id.$response.awardmsg"};
       &Apache::lonxml::debug("got message $value from $response for $id");
       push (@msgs,$value);
  }   }
  my $finalaward = &finalizeawards(@awards);   my ($finalaward,$msg) = &finalizeawards(\@awards,\@msgs);
  my $previously_used;   my $previously_used;
  if ( $#Apache::inputtags::previous eq $#awards ) {   if ( $#Apache::inputtags::previous eq $#awards ) {
     my $match=0;      my $match=0;
Line 636  sub grade { Line 667  sub grade {
  }   }
     }      }
  }   }
  &Apache::lonxml::debug("final award $finalaward, $previously_used");   &Apache::lonxml::debug("final award $finalaward, $previously_used, message $msg");
  &setgradedata($finalaward,$id,$previously_used);   &setgradedata($finalaward,$msg,$id,$previously_used);
     }      }
     return '';      return '';
 }  }
Line 659  sub gradestatus { Line 690  sub gradestatus {
  my $award = $Apache::lonhomework::history{"resource.$id.award"};   my $award = $Apache::lonhomework::history{"resource.$id.award"};
  my $solved = $Apache::lonhomework::history{"resource.$id.solved"};   my $solved = $Apache::lonhomework::history{"resource.$id.solved"};
  my $previous = $Apache::lonhomework::history{"resource.$id.previous"};   my $previous = $Apache::lonhomework::history{"resource.$id.previous"};
  &Apache::lonxml::debug("Found Award |$award|$solved|");   my $awardmsg = $Apache::lonhomework::history{"resource.$id.awardmsg"};
  if ( $award ne '' || $solved ne '') {   &Apache::lonxml::debug("Found Award |$award|$solved|$awardmsg");
    if ( $award ne '' || $solved ne '' || $status eq 'SHOW_ANSWER') {
     &Apache::lonxml::debug('Getting message');      &Apache::lonxml::debug('Getting message');
     ($showbutton,$bgcolor,$message,$previousmsg) =      ($showbutton,$bgcolor,$message,$previousmsg) =
  &decideoutput($award,$solved,$previous,$target);   &decideoutput($award,$awardmsg,$solved,$previous,$target);
     if ($target eq 'tex') {      if ($target eq 'tex') {
  $message='\vskip 2 mm '.$message.' ';   $message='\vskip 2 mm '.$message.' ';
     } else {      } else {
Line 685  sub gradestatus { Line 717  sub gradestatus {
  if ( $Apache::lonhomework::type eq 'survey') { $tries_text=&mt('Submissions'); }   if ( $Apache::lonhomework::type eq 'survey') { $tries_text=&mt('Submissions'); }
  if ( $showbutton ) {   if ( $showbutton ) {
     if ($target eq 'tex') {      if ($target eq 'tex') {
  if ($ENV{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam') {   if ($ENV{'request.state'} ne "construct" && $Apache::lonhomework::type ne 'exam' && $ENV{'form.suppress_tries'} ne 'yes') {
     $trystr = ' {\vskip 1 mm \small \textit{'.$tries_text.'} '.$tries.'/'.$maxtries.'} \vskip 2 mm ';      $trystr = ' {\vskip 1 mm \small \textit{'.$tries_text.'} '.$tries.'/'.$maxtries.'} \vskip 2 mm ';
  } else {   } else {
     $trystr = '\vskip 0 mm ';      $trystr = '\vskip 0 mm ';
  }   }
     } else {      } else {
  $trystr = "<td>".$tries_text." $tries";   $trystr = "<td><nobr>".$tries_text." $tries";
  if($ENV{'request.state'} ne 'construct') {   if($ENV{'request.state'} ne 'construct') {
     $trystr.="/$maxtries";      $trystr.="/$maxtries";
  } else {   } else {
Line 699  sub gradestatus { Line 731  sub gradestatus {
  $trystr.="/".$Apache::inputtags::params{'maxtries'};   $trystr.="/".$Apache::inputtags::params{'maxtries'};
     }      }
  }   }
  $trystr.="</td>";   $trystr.="</nobr></td>";
     }      }
  }   }
  if ( $status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {$showbutton = 0;}   if ( $status eq 'SHOW_ANSWER' || $status eq 'CANNOT_ANSWER') {$showbutton = 0;}

Removed from v.1.135  
changed lines
  Added in v.1.150


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