--- loncom/homework/radiobuttonresponse.pm 2006/03/27 21:18:16 1.106 +++ loncom/homework/radiobuttonresponse.pm 2007/03/01 02:31:20 1.112 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # mutliple choice style responses # -# $Id: radiobuttonresponse.pm,v 1.106 2006/03/27 21:18:16 albertel Exp $ +# $Id: radiobuttonresponse.pm,v 1.112 2007/03/01 02:31:20 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -179,7 +179,10 @@ sub end_foilgroup { $safeeval,'-2'); if ( $style eq 'survey' && $target ne 'analyze') { if ($target eq 'web' || $target eq 'tex') { - $result=&displayallfoils($direction); + $result=&displayallfoils($direction, $target); + if ($target eq 'web') { + &setup_prior_tries_hash(); + } } elsif ( $target eq 'answer' ) { $result=&displayallanswers(); } elsif ( $target eq 'grade' ) { @@ -193,6 +196,9 @@ sub end_foilgroup { $safeeval,'-2'); if ($target eq 'web' || $target eq 'tex') { $result=&displayfoils($target,$max,$randomize,$direction); + if ($target eq 'web') { + &setup_prior_tries_hash(); + } } elsif ($target eq 'answer' ) { $result=&displayanswers($max,$randomize); } elsif ( $target eq 'grade') { @@ -206,6 +212,7 @@ sub end_foilgroup { ('true','false')); } } + $Apache::lonxml::post_evaluate=0; } &Apache::response::poprandomnumber(); &Apache::lonxml::increment_counter(); @@ -230,8 +237,22 @@ sub getfoilcounts { return ($truecnt,$falsecnt); } +sub setup_prior_tries_hash { + my $part=$Apache::inputtags::part; + my $id=$Apache::inputtags::response[-1]; + foreach my $i (1..$Apache::lonhomework::history{'version'}) { + my $key = "$i:resource.$part.$id.submission"; + next if (!exists($Apache::lonhomework::history{"$key"})); + my %response = + &Apache::lonnet::str2hash($Apache::lonhomework::history{$key}); + my ($name) = keys(%response); + $Apache::inputtags::submission_display{$key} = + $Apache::response::foilgroup{$name.'.text'} + } +} + sub displayallfoils { - my ($direction)=@_; + my ($direction, $target)=@_; my $result; &Apache::lonxml::debug("survey style display"); my @names; @@ -239,6 +260,7 @@ sub displayallfoils { @names= @{ $Apache::response::foilgroup{'names'} }; } my $temp=0; + my $i =0; my $id=$Apache::inputtags::response['-1']; my $part=$Apache::inputtags::part; my $lastresponse= @@ -248,19 +270,27 @@ sub displayallfoils { if (&Apache::response::show_answer() ) { foreach my $name (@names) { if ($Apache::response::foilgroup{$name.'.value'} ne 'unused') { - if ($direction eq 'horizontal') { + if (($direction eq 'horizontal') && ($target ne 'tex')) { $result.=""; } else { - $result.="
"; + if ($target eq 'tex') { + $result .= '\item \vskip -2mm '; + } else { + $result.="
"; + } } if (defined($lastresponse{$name})) { - $result.=''; + if ($target eq 'tex') { + $result .= '}'; + } else { + $result.=''; + } } $result .= $Apache::response::foilgroup{$name.'.text'}; - if (defined($lastresponse{$name})) { + if (defined($lastresponse{$name}) && ($target ne 'tex')) { $result.=''; } - if ($direction eq 'horizontal') { $result.=""; } + if (($direction eq 'horizontal') && ($target ne 'tex')) { $result.=""; } } } } else { @@ -269,19 +299,32 @@ sub displayallfoils { if ($direction eq 'horizontal') { $result.=""; } else { - $result.="
"; + if ($target eq 'tex') { + $result .= '\item \vskip -2mm '; + } else { + $result.="
"; + } + } + if ($target eq 'tex') { + $result .= '$\bigcirc$'.$Apache::response::foilgroup{$name.'.text'}.'\\\\'; #' stupid emacs + $i++; + } else { + $result .= '