Diff for /loncom/homework/response.pm between versions 1.87 and 1.93

version 1.87, 2003/10/27 19:27:09 version 1.93, 2004/03/08 22:59:12
Line 28 Line 28
   
 package Apache::response;  package Apache::response;
 use strict;  use strict;
   use Apache::lonlocal;
   
 BEGIN {  BEGIN {
     &Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse'));      &Apache::lonxml::register('Apache::response',('responseparam','parameter','dataresponse'));
Line 45  sub start_response { Line 46  sub start_response {
     push (@Apache::inputtags::response,$id);      push (@Apache::inputtags::response,$id);
     push (@Apache::inputtags::responselist,$id);      push (@Apache::inputtags::responselist,$id);
     @Apache::inputtags::inputlist=();      @Apache::inputtags::inputlist=();
       if ($Apache::inputtags::part eq '') {
    &Apache::lonxml::error(&HTML::Entities::encode(&mt("Found a <*response> outside of a <part> in a <part>ed problem")));
       }
       if ($Apache::inputtags::response_with_no_part &&
    $Apache::inputtags::part ne '0') {
    &Apache::lonxml::error(&HTML::Entities::encode(&mt("<*response>s are both inside of <part> and outside of <part>, this is not a valid problem, errors in grading may occur.")).'<br />');
       }
       if ($Apache::inputtags::part eq '0') {
    $Apache::inputtags::response_with_no_part=1;
       }
     return $id;      return $id;
 }  }
   
Line 77  sub end_hintresponse { Line 88  sub end_hintresponse {
 # that is stable and unique based on the part number and response number  # that is stable and unique based on the part number and response number
 sub setrandomnumber {  sub setrandomnumber {
     my $rndseed;      my $rndseed;
     if ($ENV{'request.state'} eq "construct") {      $rndseed=&Apache::structuretags::setup_rndseed();
  $rndseed=$ENV{'form.rndseed'};      if (!defined($rndseed)) { $rndseed=&Apache::lonnet::rndseed(); }
  if (!$rndseed) { $rndseed=time; }  
     } else {  
  $rndseed=&Apache::lonnet::rndseed();  
     }  
     &Apache::lonxml::debug("randseed $rndseed");      &Apache::lonxml::debug("randseed $rndseed");
     #  $rndseed=unpack("%32i",$rndseed);      #  $rndseed=unpack("%32i",$rndseed);
     my $rndmod=(&Apache::lonnet::numval($Apache::inputtags::part) << 10);      my $rndmod=(&Apache::lonnet::numval($Apache::inputtags::part) << 10);
     if (defined($Apache::inputtags::response['-1'])) {      if (defined($Apache::inputtags::response['-1'])) {
        $rndmod+=&Apache::lonnet::numval($Apache::inputtags::response[-1]);   $rndmod+=&Apache::lonnet::numval($Apache::inputtags::response[-1]);
     }      }
     if ($rndseed =~/,/) {      if ($rndseed =~/,/) {
  {   {
Line 115  sub meta_parameter_write { Line 122  sub meta_parameter_write {
     }      }
     $result.=            ' name="'.$name.'"'.      $result.=            ' name="'.$name.'"'.
                          ' type="'.$type.'"'.                           ' type="'.$type.'"'.
 ($default?' default="'.$default.'"':'').  (defined($default)?' default="'.$default.'"':'').
 ($display?' display="'.$display.' [Part: '.$partref.']"':'')  (defined($display)?' display="'.$display.' [Part: '.$partref.']"':'')
              .'></parameter>'               .'></parameter>'
              ."\n";               ."\n";
     return $result;      return $result;
Line 460  sub showallfoils { Line 467  sub showallfoils {
 }  }
   
 sub getresponse {  sub getresponse {
     my ($temp)=@_;      my ($temp,$resulttype)=@_;
     my $formparm='form.HWVAL_'.$Apache::inputtags::response['-1'];      my $formparm='form.HWVAL_'.$Apache::inputtags::response['-1'];
     my $response;      my $response;
     if (!defined($temp)) {      if (!defined($temp)) {
Line 480  sub getresponse { Line 487  sub getresponse {
  # save bubbled letter for later   # save bubbled letter for later
  $Apache::lonhomework::results{"resource.$part.$id.scantron"}.=   $Apache::lonhomework::results{"resource.$part.$id.scantron"}.=
     $response;      $response;
  $response = $let_to_num{$response};   if ($resulttype ne 'letter') {
       $response = $let_to_num{$response};
    }
     } else {      } else {
  $response = $ENV{$formparm};   $response = $ENV{$formparm};
     }      }
Line 504  sub scored_response { Line 513  sub scored_response {
  if ($increase ne '') { $score+=$increase+1; }   if ($increase ne '') { $score+=$increase+1; }
     }      }
     my $weight = &Apache::lonnet::EXT("resource.$part.weight");      my $weight = &Apache::lonnet::EXT("resource.$part.weight");
       if (!defined($weight) || $weight eq '' || $weight eq 0) { $weight = 1; }
     my $pcr=$score/$weight;      my $pcr=$score/$weight;
     $Apache::lonhomework::results{"resource.$part.$id.awarded"}=$pcr;      $Apache::lonhomework::results{"resource.$part.$id.awarded"}=$pcr;
     $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=      $Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=
Line 559  sub whichorder { Line 569  sub whichorder {
     for (my $i=0;$i<=$#bottomlist;$i++) {      for (my $i=0;$i<=$#bottomlist;$i++) {
  if ($bottomlist[$i]) { push(@whichopt,$bottomlist[$i]) }   if ($bottomlist[$i]) { push(@whichopt,$bottomlist[$i]) }
     }      }
   
     return @whichopt;      return @whichopt;
 }  }
   

Removed from v.1.87  
changed lines
  Added in v.1.93


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