Diff for /loncom/homework/inputtags.pm between versions 1.86 and 1.91

version 1.86, 2003/04/02 19:51:24 version 1.91, 2003/04/08 15:18:45
Line 89  sub start_textfield { Line 89  sub start_textfield {
  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 = 10; }
  $result= '<textarea name="HWVAL'.$resid.'" '.   $result= '<textarea name="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
Line 104  sub start_textfield { Line 104  sub start_textfield {
     }      }
   } elsif ($target eq 'grade') {    } elsif ($target eq 'grade') {
     my $seedtext=&Apache::lonxml::get_all_text("/textfield",$parser);      my $seedtext=&Apache::lonxml::get_all_text("/textfield",$parser);
     if ($seedtext eq $ENV{'form.HWVAL'.$resid}) {      if ($seedtext eq $ENV{'form.HWVAL_'.$resid}) {
       # if the seed text is still there it wasn't a real submission        # if the seed text is still there it wasn't a real submission
       $ENV{'form.HWVAL'.$resid}='';        $ENV{'form.HWVAL_'.$resid}='';
     }      }
   } elsif ($target eq 'edit') {    } elsif ($target eq 'edit') {
     $result.=&Apache::edit::tag_start($target,$token);      $result.=&Apache::edit::tag_start($target,$token);
Line 164  sub start_textline { Line 164  sub start_textline {
       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="text" name="HWVAL'.$id.'" value="'.          $result= '<input type="text" name="HWVAL_'.$id.'" value="'.
     $oldresponse.'" size="'.$size.'" maxlength="'.$maxlength.'" />';      $oldresponse.'" size="'.$size.'" maxlength="'.$maxlength.'" />';
       }        }
     } else {      } else {
Line 267  sub decideoutput { Line 267  sub decideoutput {
   if ($previous) { $previousmsg='You have entered that answer before'; }    if ($previous) { $previousmsg='You have entered that answer before'; }
   
   if      ($solved =~ /^correct/) {    if      ($solved =~ /^correct/) {
     if ($target eq 'tex') {        if ($target eq 'tex') {
       $message = '\textbf{You are correct}. Your receipt is '.    $message = '\textbf{You are correct}. Your receipt is '.
       &Apache::lonnet::receipt;             &Apache::lonnet::receipt;
     } else {        } else {
       $message = "<b>You are correct.</b> Your receipt is ".    $message = "<b>You are correct.</b> Your receipt is ".
       &Apache::lonnet::receipt;     &Apache::lonnet::receipt;
     }        }
     $button=0;        $button=0;
     $previousmsg='';        $previousmsg='';
   } elsif ($solved =~ /^excused/) {    } elsif ($solved =~ /^excused/) {
     $message = "<b>You are excused from the problem.</b>";        $message = "<b>You are excused from the problem.</b>";
     $button=0;  
     $previousmsg='';  
   } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {  
     if ($solved =~ /^incorrect/ || $solved eq '') {  
       $message = "Incorrect";  
       $button=1;  
     } else {  
       $message = "<b>You are correct.</b> Your receipt is ".  
  &Apache::lonnet::receipt;  
       $button=0;        $button=0;
       $previousmsg='';        $previousmsg='';
     }    } elsif ($award eq 'EXACT_ANS' || $award eq 'APPROX_ANS' ) {
         if ($solved =~ /^incorrect/ || $solved eq '') {
     $message = "Incorrect";
     $button=1;
         } else {
     $message = "<b>You are correct.</b> Your receipt is ".
      &Apache::lonnet::receipt;
     $button=0;
     $previousmsg='';
         }
   } elsif ($award eq 'NO_RESPONSE') {    } elsif ($award eq 'NO_RESPONSE') {
     $message = '';        $message = '';
     $button=1;        $button=1;
   } elsif ($award eq 'MISSING_ANSWER') {    } elsif ($award eq 'MISSING_ANSWER') {
     $message = 'Some parts were not submitted';        $message = 'Some parts were not submitted';
     $button = 1;        $button = 1;
   } elsif ($award eq 'WANTED_NUMERIC') {    } elsif ($award eq 'WANTED_NUMERIC') {
     $message = "This question expects a numeric answer";        $message = "This question expects a numeric answer";
     $button=1;        $button=1;
   } elsif ($award eq 'MISORDERED_RANK') {    } elsif ($award eq 'MISORDERED_RANK') {
     $message = 'You have provided an invalid ranking, please refer to '.        $message = 'You have provided an invalid ranking, please refer to '.
      &Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.';         &Apache::loncommon::help_open_topic('Ranking_Problems','help on ranking problems').'.';
     $button=1;        $button=1;
   } elsif ($award eq 'INVALID_FILETYPE') {    } elsif ($award eq 'INVALID_FILETYPE') {
     $message = 'The filetype extension of the file you uploaded is not allowed.';        $message = 'The filetype extension of the file you uploaded is not allowed.';
     $button=1;        $button=1;
   } elsif ($award eq 'SIG_FAIL') {    } elsif ($award eq 'SIG_FAIL') {
     $message = "Please adjust significant figures.";# you provided %s significant figures";        $message = "Please adjust significant figures.";# you provided %s significant figures";
     $button=1;        $button=1;
   } elsif ($award eq 'UNIT_FAIL') {    } elsif ($award eq 'UNIT_FAIL') {
     $message = "Units incorrect. ".        $message = "Units incorrect. ".
        &Apache::loncommon::help_open_topic('Physical_Units'); #Computer reads units as %s";         &Apache::loncommon::help_open_topic('Physical_Units'); #Computer reads units as %s";
     $button=1;        $button=1;
   } elsif ($award eq 'UNIT_NOTNEEDED') {    } elsif ($award eq 'UNIT_NOTNEEDED') {
     $message = "Only a number required.";# Computer reads units of %s";        $message = "Only a number required.";# Computer reads units of %s";
     $button=1;        $button=1;
   } elsif ($award eq 'NO_UNIT') {    } elsif ($award eq 'NO_UNIT') {
     $message = "Units required".        $message = "Units required".
        &Apache::loncommon::help_open_topic('Physical_Units');         &Apache::loncommon::help_open_topic('Physical_Units');
     $button=1;        $button=1;
   } elsif ($award eq 'BAD_FORMULA') {    } elsif ($award eq 'BAD_FORMULA') {
     $message = "Unable to understand formula";        $message = "Unable to understand formula";
     $button=1;        $button=1;
   } elsif ($award eq 'INCORRECT') {    } elsif ($award eq 'INCORRECT') {
     $message = "Incorrect";        $message = "Incorrect";
     $button=1;        $button=1;
   } elsif ($award eq 'SUBMITTED') {    } elsif ($award eq 'SUBMITTED') {
     $message = "Your submission has been recorded.";        $message = "Your submission has been recorded.";
     $button=1;        $button=1;
   } elsif ($award eq 'DRAFT') {    } elsif ($award eq 'DRAFT') {
     $message = "A draft copy has been saved.";        $message = "A draft copy has been saved.";
     $button=1;        $button=1;
   } else {    } else {
     $message = "Unknown message: $award";        $message = "Unknown message: $award";
     $button=1;        $button=1;
     } 
     if (lc($Apache::lonhomework::problemstatus) ne 'yes') {
         $message = "Answer Submitted";
         $button=1;
   }    }
   if ($Apache::lonhomework::type eq 'exam') {$message='';$previousmsg='';}  
   return ($button,$message,$previousmsg);    return ($button,$message,$previousmsg);
 }  }
   
   sub removealldata {
       my ($id)=@_;
       foreach my $key (keys(%Apache::lonhomework::results)) {
    if (($key =~ /^resource\.\Q$id\E\./) && ($key !~ /\.collaborators$/)) {
       &Apache::lonxml::debug("Removing $key");
       delete($Apache::lonhomework::results{$key});
    }
       }
   }
   
 sub setgradedata {  sub setgradedata {
   my ($award,$id,$previously_used) = @_;    my ($award,$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
Line 372  sub setgradedata { Line 385  sub setgradedata {
     } elsif ( $award eq 'DRAFT' ) {      } elsif ( $award eq 'DRAFT' ) {
       $Apache::lonhomework::results{"resource.$id.solved"} = '';        $Apache::lonhomework::results{"resource.$id.solved"} = '';
     } elsif ( $award eq 'NO_RESPONSE' ) {      } elsif ( $award eq 'NO_RESPONSE' ) {
       return '';   #no real response so delete any data that got stored
    &removealldata($id);
    return '';
     } else {      } else {
       $Apache::lonhomework::results{"resource.$id.solved"} =        $Apache::lonhomework::results{"resource.$id.solved"} =
  'incorrect_attempted';   'incorrect_attempted';
Line 386  sub setgradedata { Line 401  sub setgradedata {
     } elsif ( $previously_used eq 'PREVIOUSLY_LAST') {      } elsif ( $previously_used eq 'PREVIOUSLY_LAST') {
       #delete all data as they student didn't do anything, but save        #delete all data as they student didn't do anything, but save
       #the list of collaborators.        #the list of collaborators.
       foreach my $key (keys(%Apache::lonhomework::results)) {        &removealldata($id);
  if (($key =~ /^resource\.$id\./) && ($key !~ /\.collaborators$/)) {  
   &Apache::lonxml::debug("Removing $key");  
   delete($Apache::lonhomework::results{$key});  
  }  
       }  
       #and since they didn't do anything we were never here        #and since they didn't do anything we were never here
       return '';        return '';
     } else {      } else {
Line 400  sub setgradedata { Line 410  sub setgradedata {
   } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~    } elsif ( $Apache::lonhomework::history{"resource.$id.solved"} =~
     /^correct/ ) {      /^correct/ ) {
       #delete all data as they student already has it correct        #delete all data as they student already has it correct
       foreach my $key (keys(%Apache::lonhomework::results)) {        &removealldata($id);
   if (($key =~ /^resource\.$id\./) && ($key !~ /\.collaborators$/)) {  
       &Apache::lonxml::debug("Removing $key");  
       delete($Apache::lonhomework::results{$key});  
   }  
       }  
       #and since they didn't do anything we were never here        #and since they didn't do anything we were never here
       return '';        return '';
   }    }

Removed from v.1.86  
changed lines
  Added in v.1.91


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