--- loncom/homework/matchresponse.pm 2007/08/29 10:07:42 1.65 +++ loncom/homework/matchresponse.pm 2008/08/08 16:37:13 1.70 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Full matching style response # -# $Id: matchresponse.pm,v 1.65 2007/08/29 10:07:42 foxr Exp $ +# $Id: matchresponse.pm,v 1.70 2008/08/08 16:37:13 bisitz Exp $ # # Copyright Michigan State University Board of Trustees # @@ -70,8 +70,9 @@ sub start_matchresponse { if ($constructtag) { $result = &Apache::edit::rebuild_tag($token); } } elsif ($target eq 'analyze') { my $part_id="$Apache::inputtags::part.$id"; + $Apache::lonhomework::analyze{"$part_id.type"} = 'matchresponse'; push (@{ $Apache::lonhomework::analyze{"parts"} },$part_id); - push (@{ $Apache::lonhomework::anaylze{"$part_id.bubble_lines"} }, + push (@{ $Apache::lonhomework::analyze{"$part_id.bubble_lines"} }, 1); } return $result; @@ -261,6 +262,9 @@ sub start_foilgroup { sub end_foilgroup { my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_; my $result; + my $part = $Apache::inputtags::part; + my $response_id = $Apache::inputtags::response[-1]; + if ($target eq 'grade' || $target eq 'web' || $target eq 'answer' || $target eq 'tex' || $target eq 'analyze') { my $max = &Apache::lonxml::get_param('max',$parstack,$safeeval,'-2'); my $randomize = &Apache::lonxml::get_param('randomize',$parstack, @@ -278,7 +282,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), + "$part.$response_id"); + if ($target eq 'analyze') { + &Apache::lonhomework::set_bubble_lines(); + } + } elsif ($target eq 'edit') { $result=&Apache::edit::end_table(); } @@ -710,12 +719,12 @@ sub end_foil { my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval); &Apache::lonxml::debug("Got a name of :$name:"); if (!$name) { - &Apache::lonxml::warning("Foils without names exist. This can cause problems to malfunction."); + &Apache::lonxml::warning(&mt('Foils without names exist. This can cause problems to malfunction.')); $name=$Apache::lonxml::curdepth; } &Apache::lonxml::debug("Using a name of :$name:"); if (defined($Apache::response::foilnames{$name})) { - &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",$name)); + &Apache::lonxml::error(&mt("Foil name [_1] appears more than once. Foil names need to be unique.",''.$name.'')); } $Apache::response::foilnames{$name}++; my $location =&Apache::lonxml::get_param('location',$parstack,