--- loncom/homework/matchresponse.pm 2007/04/11 09:20:32 1.63 +++ loncom/homework/matchresponse.pm 2007/10/08 09:22:50 1.66 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Full matching style response # -# $Id: matchresponse.pm,v 1.63 2007/04/11 09:20:32 foxr Exp $ +# $Id: matchresponse.pm,v 1.66 2007/10/08 09:22:50 foxr Exp $ # # Copyright Michigan State University Board of Trustees # @@ -71,6 +71,8 @@ sub start_matchresponse { } elsif ($target eq 'analyze') { my $part_id="$Apache::inputtags::part.$id"; push (@{ $Apache::lonhomework::analyze{"parts"} },$part_id); + push (@{ $Apache::lonhomework::anaylze{"$part_id.bubble_lines"} }, + 1); } return $result; } @@ -276,7 +278,12 @@ sub end_foilgroup { ['text','value','location']); #FIXME need to store options in some way } - &Apache::lonxml::increment_counter(&getfoilcounts($max)); + &Apache::lonxml::increment_counter(&getfoilcounts($max), + $Apache::inputtags::part); + if ($target eq 'analyze') { + &Apache::lonhomework::set_bubble_lines(); + } + } elsif ($target eq 'edit') { $result=&Apache::edit::end_table(); } @@ -415,6 +422,24 @@ sub grade_response { } } +sub format_prior_answer { + my ($mode,$answer,$other_data) = @_; + my %answer =&Apache::lonnet::str2hash($answer); + my $foil_order =$other_data->[0]; + my %grading =&Apache::lonnet::str2hash($other_data->[1]); + my @items =&Apache::lonnet::str2array($other_data->[2]); + my $output; + + foreach my $name (@{ $foil_order }) { + my $item=shift(@items); + $output .= ''.$item.''; + } + return if (!defined($output)); + + $output = ''.$output.'
'; + return $output; +} + sub itemdisplay { my ($location)=@_; if ($location eq 'top' && @@ -426,6 +451,7 @@ sub itemdisplay { } return undef; } + sub displayfoils { my ($target,$max,$randomize)=@_; my ($tabsize, $lefttabsize, $righttabsize); @@ -576,6 +602,12 @@ sub displayfoils { $result='\setlength{\tabcolsep}{1 mm}\begin{tabular}{p{'.$lefttabsize.'}p{'.$righttabsize.'}}\begin{minipage}{'.$lefttabsize.'}'.$result.'\end{minipage}&\begin{minipage}{'.$righttabsize.'}'.$question.'\end{minipage}\end{tabular}'; } } + if ($target eq 'web') { + &Apache::response::setup_prior_tries_hash(\&format_prior_answer, + [\@whichfoils, + 'submissiongrading', + 'submissionitems']); + } if ($target ne 'tex') {$result.="
";} else {$result.=' \\\\ ';} return $result; }