version 1.16, 2010/03/18 14:50:15
|
version 1.17, 2010/03/18 16:08:48
|
Line 207 sub get_pdf_data() {
|
Line 207 sub get_pdf_data() {
|
sub grade_pdf { |
sub grade_pdf { |
my $result = (); |
my $result = (); |
my @pdfdata = @_; |
my @pdfdata = @_; |
|
my ($result,$meta,%grades,%problems,$debug); |
|
|
my $meta = (); |
|
my %grades = (); |
|
my %problems = (); |
|
|
|
my $debug = (); |
|
|
|
$debug .= "Found: ". scalar @pdfdata." Entries \n"; |
$debug .= "Found: ". scalar @pdfdata." Entries \n"; |
|
|
foreach my $entry (sort(@pdfdata)) { |
foreach my $entry (sort(@pdfdata)) { |
Line 231 sub grade_pdf {
|
Line 226 sub grade_pdf {
|
.'</p>'; |
.'</p>'; |
} |
} |
|
|
} elsif($entry =~ /^upload.*/) { |
} elsif ($entry =~ /^upload.*/) { |
$debug .= 'found: a problem -> '.$entry; |
$debug .= 'found: a problem -> '.$entry; |
my ($label, $value) = ($entry =~ /^([^?]*)\?(.*)/); |
my ($label, $value) = ($entry =~ /^([^?]*)\?(.*)/); |
my ($symb, $part, $type, $HWVAL) = split('&', $label); |
my ($symb, $part, $type, $HWVAL) = split('&', $label); |
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symb); |
my ($map,$id,$resource)=&Apache::lonnet::decode_symb($symb); |
|
next unless (&Apache::lonnet::is_on_map($resource)); |
$value =~ s/(.*)\n/$1/; |
$value =~ s/(.*)\n/$1/; |
|
|
#filter incorrect radiobuttons (Bug in CABAReT Stage) |
#filter incorrect radiobuttons (Bug in CABAReT Stage) |
if($type eq 'radiobuttonresponse' && $value eq 'Off' ) { |
if ($type eq 'radiobuttonresponse' && $value eq 'Off' ) { |
next; |
next; |
} |
} |
|
|
my $submit = $part; |
my $submit = $part; |
$submit =~ s/part_(.*)/submit_$1/; |
$submit =~ s/part_(.*)/submit_$1/; |
if($problems{$symb.$part}) { |
if ($problems{$symb.$part}) { |
$problems{$symb.$part}{$HWVAL} = $value; |
$problems{$symb.$part}{$HWVAL} = $value; |
} else { |
} else { |
$problems{$symb.$part} = { 'resource' => $resource, |
$problems{$symb.$part} = { 'resource' => $resource, |
Line 262 sub grade_pdf {
|
Line 258 sub grade_pdf {
|
#$result .= $debug; |
#$result .= $debug; |
|
|
$result .= '<h2>'.&mt('Results of PDF Form problems').'</h2>'; |
$result .= '<h2>'.&mt('Results of PDF Form problems').'</h2>'; |
$result .= &Apache::loncommon::start_data_table() |
|
.&Apache::loncommon::start_data_table_header_row() |
if (keys(%problems) > 0) { |
.'<th>'.&mt('Problem Name').'</th>' |
$result .= &Apache::loncommon::start_data_table() |
.'<th>'.&mt('Grading').'</th>' |
.&Apache::loncommon::start_data_table_header_row() |
.&Apache::loncommon::start_data_table_header_row() |
.'<th>'.&mt('Problem Name').'</th>' |
.&Apache::loncommon::end_data_table_header_row(); |
.'<th>'.&mt('Grading').'</th>' |
|
.&Apache::loncommon::start_data_table_header_row() |
foreach my $key (sort (keys %problems)) { |
.&Apache::loncommon::end_data_table_header_row(); |
my %problem = %{$problems{$key}}; |
|
my ($problemname, $grade) = &grade_problem(%problem); |
foreach my $key (sort(keys(%problems))) { |
|
my %problem = %{$problems{$key}}; |
$result .= &Apache::loncommon::start_data_table_row(); |
my ($problemname, $grade) = &grade_problem(%problem); |
$result .= "<td>$problemname</td><td class='"; |
|
if($grade eq "EXACT_ANS" || $grade eq "APPROX_ANS") { |
$result .= &Apache::loncommon::start_data_table_row(); |
$result .= "LC_answer_correct"; |
$result .= "<td>$problemname</td><td class='"; |
} else { |
if ($grade eq "EXACT_ANS" || $grade eq "APPROX_ANS") { |
$result .= "LC_answer_charged_try"; |
$result .= "LC_answer_correct"; |
|
} else { |
|
$result .= "LC_answer_charged_try"; |
|
} |
|
$grade = &parse_grade_answer($grade); |
|
$result .= "'>$grade</span></td>"; |
|
$result .= &Apache::loncommon::end_data_table_row(); |
} |
} |
$grade = &parse_grade_answer($grade); |
$result .= &Apache::loncommon::end_data_table(); |
$result .= "'>$grade</span></td>"; |
} else { |
$result .= &Apache::loncommon::end_data_table_row(); |
$result .= '<p class="LC_warning">'. |
|
&mt('As no gradable form items were found, no submissions have been recorded.'). |
|
'</p>'; |
} |
} |
$result .= &Apache::loncommon::end_data_table(); |
|
|
|
|
|
return $result; |
return $result; |
} |
} |