Diff for /loncom/homework/radiobuttonresponse.pm between versions 1.14 and 1.15

version 1.14, 2001/03/01 01:20:04 version 1.15, 2001/04/23 17:15:13
Line 40  sub setrandomnumber { Line 40  sub setrandomnumber {
   return '';    return '';
 }  }
   
   sub storesurvey {
     if ( defined $ENV{'form.submitted'}) {
       my $response = $ENV{'form.HWVAL'.$Apache::inputtags::response['-1']};
       &Apache::lonxml::debug("Here I am!:$response:");
       if ( $response =~ /[^\s]/) {
         my $id = $Apache::inputtags::response['-1'];
         $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}=$response;
         $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='SUBMITTED';
         &Apache::lonxml::debug("submitted a $response<br />\n");
       }
     }
     return '';
   }
   
 sub end_foilgroup {  sub end_foilgroup {
   my ($target,$token,$parstack,$parser,$safeeval,$style)=@_;    my ($target,$token,$parstack,$parser,$safeeval,$style)=@_;
       
   my $result;    my $result;
   if ($target ne 'meta') {    if ($target ne 'meta') {
     my $name;      my $rrargs ='';
     my ($truecnt,$falsecnt,$max) = &getfoilcounts($parstack,$safeeval);      if ( $#$parstack > 0 ) { $rrargs=$$parstack['-2']; }
     my $count=0;      my $style = &Apache::run::run("{$rrargs;".'return $style}',$safeeval);
     # we will add in 1 of the true statements      if ( $style eq 'survey' ) {
     if (($falsecnt+1)>$max) { $count=$max } else { $count=$falsecnt+1; }        if ($target eq 'web') {
     my $answer = int(rand ($count));   $result=&displayallfoils();
     &Apache::lonxml::debug("Answer is $answer, $count from $max, $falsecnt");        } elsif ( $target eq 'grade' ) {
     if ($target eq 'web') {   $result=&storesurvey();
       $result=&displayfoils($max,$answer);        }
     } elsif ( $target eq 'grade') {      } else {
       if ( defined $ENV{'form.submitted'}) {        my $name;
  my $response = $ENV{'form.HWVAL'.$Apache::inputtags::response['-1']};        my ($truecnt,$falsecnt,$max) = &getfoilcounts($parstack,$safeeval);
  if ( $response =~ /[^\s]/) {        my $count=0;
   my $id = $Apache::inputtags::response['-1'];        # we will add in 1 of the true statements
   $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}=$response;        if (($falsecnt+1)>$max) { $count=$max } else { $count=$falsecnt+1; }
   &Apache::lonxml::debug("submitted a $response<br />\n");        my $answer = int(rand ($count));
   if ($response == $answer) {        &Apache::lonxml::debug("Answer is $answer, $count from $max, $falsecnt");
     $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='EXACT_ANS';        if ($target eq 'web') {
   } else {   $result=&displayfoils($max,$answer);
     $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='INCORRECT';        } elsif ( $target eq 'grade') {
    if ( defined $ENV{'form.submitted'}) {
     my $response = $ENV{'form.HWVAL'.$Apache::inputtags::response['-1']};
     if ( $response =~ /[^\s]/) {
       my $id = $Apache::inputtags::response['-1'];
       $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.submission"}=$response;
       &Apache::lonxml::debug("submitted a $response<br />\n");
       if ($response == $answer) {
         $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='EXACT_ANS';
       } else {
         $Apache::lonhomework::results{"resource.$Apache::inputtags::part.$id.awarddetail"}='INCORRECT';
       }
   }    }
  }   }
       }        }
Line 93  sub getfoilcounts { Line 118  sub getfoilcounts {
   return ($truecnt,$falsecnt,$max);    return ($truecnt,$falsecnt,$max);
 }  }
   
   sub displayallfoils {
     my $result;
     &Apache::lonxml::debug("survey style display");
     my @names = @{ $Apache::response::foilgroup{'names'} };
     my $temp=0;
     my $id=$Apache::inputtags::response['-1'];
     my $part=$Apache::inputtags::part;
     my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"};
     foreach my $name (@names) {
       if ($Apache::response::foilgroup{$name.'.value'} ne 'unused') {
         $result.="<br /><input type=\"radio\" name=\"HWVAL$Apache::inputtags::response['-1']\" value=\"$temp\" ";
         if ($lastresponse == $temp) { $result .= 'checked="on"'; }
         $result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</input>\n";
         $temp++;
       }
     }
     return $result;
   }
   
 sub displayfoils {  sub displayfoils {
   my ($max,$answer)=@_;    my ($max,$answer)=@_;
   my @names = @{ $Apache::response::foilgroup{'names'} };    my @names = @{ $Apache::response::foilgroup{'names'} };
Line 115  sub displayfoils { Line 159  sub displayfoils {
   my $whichtrue = rand $#truelist;    my $whichtrue = rand $#truelist;
   &Apache::lonxml::debug("Max is $max, From $#truelist elms, picking $whichtrue");    &Apache::lonxml::debug("Max is $max, From $#truelist elms, picking $whichtrue");
   my @whichfalse =();    my @whichfalse =();
   while ((($#whichfalse+2) < $max) && ($#falselist > -1)) {    while ((($#whichfalse+1) < $max) && ($#falselist > -1)) {
     my $afalse=rand $#falselist;      my $afalse=rand $#falselist;
     &Apache::lonxml::debug("From $#falselist elms, picking $afalse");      &Apache::lonxml::debug("From $#falselist elms, picking $afalse");
     $afalse=splice(@falselist,$afalse,1);      $afalse=splice(@falselist,$afalse,1);
Line 136  sub displayfoils { Line 180  sub displayfoils {
     }      }
   } else {    } else {
     my $temp=0;      my $temp=0;
       my $id=$Apache::inputtags::response['-1'];
       my $part=$Apache::inputtags::part;
       my $lastresponse=$Apache::lonhomework::history{"resource.$part.$id.submission"};
     foreach $name (@whichfalse) {      foreach $name (@whichfalse) {
       $result.="<br /><input type=\"radio\" name=\"HWVAL$Apache::inputtags::response['-1']\" value=\"$temp\">".$Apache::response::foilgroup{$name.'.text'}."</input>\n";         $result.="<br /><input type=\"radio\" name=\"HWVAL$Apache::inputtags::response['-1']\" value=\"$temp\" ";
         if ($lastresponse == $temp) { $result .= 'checked="on"'; }
         $result .= '>'.$Apache::response::foilgroup{$name.'.text'}."</input>\n";
       $temp++;        $temp++;
     }      }
   }    }

Removed from v.1.14  
changed lines
  Added in v.1.15


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