version 1.5, 2004/03/03 22:57:31
|
version 1.6, 2004/03/08 19:12:18
|
Line 354 Inputs: $resource: a resource object
|
Line 354 Inputs: $resource: a resource object
|
|
|
Returns: $answer |
Returns: $answer |
|
|
|
If $partid and $respid are specified, $answer is simply a scalar containing |
|
the correct answer for the response. |
|
|
|
If $partid or $respid are undefined, $answer will be a hash reference with |
|
keys $partid.'.'.$respid.'.answer'. |
|
|
=cut |
=cut |
|
|
##################################################### |
##################################################### |
Line 371 sub analyze_problem_as_student {
|
Line 377 sub analyze_problem_as_student {
|
'grade_courseid' => $courseid)); |
'grade_courseid' => $courseid)); |
(my $garbage,$Answ)=split(/_HASH_REF__/,$Answ,2); |
(my $garbage,$Answ)=split(/_HASH_REF__/,$Answ,2); |
my %Answer=&Apache::lonnet::str2hash($Answ); |
my %Answer=&Apache::lonnet::str2hash($Answ); |
my $prefix = $partid.'.'.$respid; |
# |
my $key = $prefix.'.answer'; |
if (! defined($partid)) { |
|
# If you do not specify a partid, you get them all. |
|
foreach my $partid (@{$resource->{'parts'}}) { |
|
my $partdata = $resource->{'partdata'}->{$partid}; |
|
foreach my $respid (@{$partdata->{'ResponseIds'}}) { |
|
my $prefix = $partid.'.'.$respid; |
|
my $key = $prefix.'.answer'; |
|
$returnvalue->{$key} = &get_answer($prefix,$key,%Answer); |
|
} |
|
} |
|
} elsif (! defined($respid)) { |
|
my $partdata = $resource->{'partdata'}->{$partid}; |
|
foreach my $respid (@{$partdata->{'ResponseIds'}}) { |
|
my $prefix = $partid.'.'.$respid; |
|
my $key = $prefix.'.answer'; |
|
$returnvalue->{$key} = &get_answer($prefix,$key,%Answer); |
|
} |
|
} else { |
|
my $prefix = $partid.'.'.$respid; |
|
my $key = $prefix.'.answer'; |
|
$returnvalue = &get_answer($prefix,$key,%Answer); |
|
} |
|
return $returnvalue; |
|
} |
|
|
|
sub get_answer { |
|
my ($prefix,$key,%Answer) = @_; |
|
my $returnvalue; |
if (exists($Answer{$key})) { |
if (exists($Answer{$key})) { |
my $student_answer = $Answer{$key}->[0]; |
my $student_answer = $Answer{$key}->[0]; |
if (! defined($student_answer)) { |
if (! defined($student_answer)) { |
Line 404 sub analyze_problem_as_student {
|
Line 437 sub analyze_problem_as_student {
|
return $returnvalue; |
return $returnvalue; |
} |
} |
|
|
|
|
## |
## |
## The following is copied from datecalc1.pl, part of the |
## The following is copied from datecalc1.pl, part of the |
## Spreadsheet::WriteExcel CPAN module. |
## Spreadsheet::WriteExcel CPAN module. |