Diff for /loncom/homework/inputtags.pm between versions 1.136 and 1.143

version 1.136, 2004/03/13 00:36:11 version 1.143, 2004/06/03 14:28:39
Line 118  sub start_textfield { Line 118  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 212  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 257  sub start_hiddenline { Line 259  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 305  sub finalizeawards { Line 307  sub finalizeawards {
     }      }
     if (defined($result)) { return ($result,$msg); }      if (defined($result)) { return ($result,$msg); }
     foreach my $possibleaward ('MISSING_ANSWER', 'ERROR', 'NO_RESPONSE',      foreach my $possibleaward ('MISSING_ANSWER', 'ERROR', 'NO_RESPONSE',
        'TOO_LONG', 'UNIT_FAIL', 'NO_UNIT',         'TOO_LONG', 'UNIT_INVALID_INSTRUCTOR',
          'UNIT_INVALID_STUDENT', 'UNIT_IRRECONCIBLE',
          'UNIT_FAIL', 'NO_UNIT',
        'UNIT_NOTNEEDED', 'WANTED_NUMERIC',         'UNIT_NOTNEEDED', 'WANTED_NUMERIC',
        'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT',          'BAD_FORMULA', 'SIG_FAIL', 'INCORRECT', 
        'MISORDERED_RANK', 'INVALID_FILETYPE',         'MISORDERED_RANK', 'INVALID_FILETYPE',
Line 413  sub decideoutput { Line 417  sub decideoutput {
  $message = &mt("Significant figures are incorrect, you provided [_1] significant figures while [_2] to [_3] were expected. Submission not graded.",(split(/:/,$awardmsg)));   $message = &mt("Significant figures are incorrect, you provided [_1] significant figures while [_2] to [_3] were expected. Submission not graded.",(split(/:/,$awardmsg)));
  $bgcolor=$possiblecolors{'not_charged_try'};   $bgcolor=$possiblecolors{'not_charged_try'};
  $button=1;   $button=1;
     } elsif ($award eq 'UNIT_FAIL') {      } elsif ($award eq 'UNIT_INVALID_INSTRUCTOR') {
  $message = &mt('Units incorrect. Computer reads units as "[_1]"',   $message = &mt('Error in instructor specifed unit. This error has been reported to the instructor.', $awardmsg);
        $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'};
    $button=1;
       } elsif ($award eq 'UNIT_FAIL' || $award eq 'UNIT_IRRECONCIBLE') {
    $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');}    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 "[_1]"',$awardmsg);   $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') {
Line 471  sub removealldata { Line 484  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,$msg,$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') {

Removed from v.1.136  
changed lines
  Added in v.1.143


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