[LON-CAPA-cvs] cvs: loncom /homework matchresponse.pm
albertel
lon-capa-cvs@mail.lon-capa.org
Fri, 07 Nov 2003 08:52:21 -0000
albertel Fri Nov 7 03:52:21 2003 EDT
Modified files:
/loncom/homework matchresponse.pm
Log:
- analyze mode is now correct for match response
- now includes a listing of the items in the order presented
- now stores the exact letters submitted
Index: loncom/homework/matchresponse.pm
diff -u loncom/homework/matchresponse.pm:1.29 loncom/homework/matchresponse.pm:1.30
--- loncom/homework/matchresponse.pm:1.29 Mon Oct 27 15:04:34 2003
+++ loncom/homework/matchresponse.pm Fri Nov 7 03:52:20 2003
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Full matching style response
#
-# $Id: matchresponse.pm,v 1.29 2003/10/27 20:04:34 albertel Exp $
+# $Id: matchresponse.pm,v 1.30 2003/11/07 08:52:20 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -123,6 +123,10 @@
@names=&Apache::response::whichorder($#names+1,$randomize,0,
\%Apache::response::itemgroup);
}
+ if ($target eq 'analyze') {
+ my $partid="$Apache::inputtags::part.$Apache::inputtags::response[-1]";
+ push (@{ $Apache::lonhomework::analyze{"$partid.items"} }, @names);
+ }
my %letter_name_map;
my %name_letter_map;
my @alphabet=('A'..'Z');
@@ -163,7 +167,7 @@
sub start_item {
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $result='';
- if ($target eq 'web' || $target eq 'tex') {
+ if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
&Apache::lonxml::startredirection;
} elsif ($target eq 'edit') {
my $randomize=&Apache::lonxml::get_param('randomize',$parstack,
@@ -189,11 +193,11 @@
my ($target,$token,$tagstack,$parstack,$parser,$safeeval,$style)=@_;
my $text ='';
my $result = '';
- if ($target eq 'web' || $target eq 'tex') {
+ if ($target eq 'web' || $target eq 'tex' || $target eq 'analyze') {
$text=&Apache::lonxml::endredirection;
}
if ($target eq 'web' || $target eq 'grade' || $target eq 'answer' ||
- $target eq 'edit' || $target eq 'tex') {
+ $target eq 'edit' || $target eq 'tex' || $target eq 'analyze') {
my $name = &Apache::lonxml::get_param('name',$parstack,$safeeval);
my $location=&Apache::lonxml::get_param('location',$parstack,
$safeeval);
@@ -308,8 +312,10 @@
%letter_name_map=
%{ $Apache::response::itemgroup{'letter_name_map'} };
}
+ my @items;
foreach my $name (@whichfoils) {
my $response = &Apache::response::getresponse($temp);
+ push(@items,$response);
my $responsename = $letter_name_map{$response};
$responsehash{$name}=$responsename;
my $value=$Apache::response::foilgroup{$name.'.value'};
@@ -328,9 +334,9 @@
my $part=$Apache::inputtags::part;
my $id = $Apache::inputtags::response['-1'];
my $responsestr=&Apache::lonnet::hash2str(%responsehash);
+ my $itemstr =&Apache::lonnet::array2str(@items);
my $gradestr =&Apache::lonnet::hash2str(%grade);
- my %previous =&Apache::response::check_for_previous($responsestr,
- $part,$id);
+ my %previous=&Apache::response::check_for_previous($responsestr,$part,$id);
&Apache::lonxml::debug("Got $right right and $wrong wrong, and $ignored were ignored ");
my $ad;
if ($wrong==0 && $ignored==0) {
@@ -346,6 +352,8 @@
}
$Apache::lonhomework::results{"resource.$part.$id.submission"}=
$responsestr;
+ $Apache::lonhomework::results{"resource.$part.$id.submissionitems"}=
+ $itemstr;
$Apache::lonhomework::results{"resource.$part.$id.submissiongrading"}=
$gradestr;
$Apache::lonhomework::results{"resource.$part.$id.awarddetail"}=$ad;