--- loncom/homework/optionresponse.pm 2001/03/01 00:59:33 1.5 +++ loncom/homework/optionresponse.pm 2001/05/04 21:19:37 1.6 @@ -3,6 +3,7 @@ # 2/21 Guy package Apache::optionresponse; use strict; +use Apache::response; sub BEGIN { &Apache::lonxml::register('Apache::optionresponse',('optionresponse')); @@ -25,18 +26,7 @@ sub end_optionresponse { sub start_foilgroup { %Apache::response::foilgroup={}; $Apache::optionresponse::conceptgroup=0; - &setrandomnumber(); - return ''; -} - -sub setrandomnumber { - my $rndseed=&Apache::lonnet::rndseed(); - $rndseed=unpack("%32i",$rndseed); - $rndseed=$rndseed - +&Apache::lonnet::numval($Apache::inputtags::part) - +&Apache::lonnet::numval($Apache::inputtags::response['-1']); - srand($rndseed); - &Apache::lonxml::debug("randseed $rndseed"); + &Apache::response::setrandomnumber(); return ''; } @@ -99,9 +89,9 @@ sub whichfoils { my ($max)=@_; my @names = @{ $Apache::response::foilgroup{'names'} }; my @whichopt =(); - while ((($#whichopt+1) < $max) && ($#names > -1)) { + while ((($#whichopt) < $max) && ($#names > -1)) { my $aopt=int rand $#names; - &Apache::lonxml::debug("From $#names elms, picking $aopt"); + &Apache::lonxml::debug("From $#whichopt $max $#names elms, picking $aopt"); $aopt=splice(@names,$aopt,1); &Apache::lonxml::debug("Picked $aopt"); push (@whichopt,$aopt); @@ -192,6 +182,14 @@ sub end_foil { } } } + if ($target eq 'edit') { + my $args =''; + if ( $#$parstack > 1 ) { $args=$$parstack['-2']; } + my $options=&Apache::run::run("{$args;".'return $options}',$safeeval); + if (!$options && $#$parstack > 2 ) { $args=$$parstack['-2']; } + my @opt; + #eval '@opt ='. + } return ''; }