--- loncom/interface/lonpdfupload.pm 2010/03/18 14:50:15 1.16 +++ loncom/interface/lonpdfupload.pm 2010/03/18 16:08:48 1.17 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # PDF Form Upload Handler # -# $Id: lonpdfupload.pm,v 1.16 2010/03/18 14:50:15 raeburn Exp $ +# $Id: lonpdfupload.pm,v 1.17 2010/03/18 16:08:48 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -207,13 +207,8 @@ sub get_pdf_data() { sub grade_pdf { my $result = (); my @pdfdata = @_; + my ($result,$meta,%grades,%problems,$debug); - my $meta = (); - my %grades = (); - my %problems = (); - - my $debug = (); - $debug .= "Found: ". scalar @pdfdata." Entries \n"; foreach my $entry (sort(@pdfdata)) { @@ -231,21 +226,22 @@ sub grade_pdf { .'

'; } - } elsif($entry =~ /^upload.*/) { + } elsif ($entry =~ /^upload.*/) { $debug .= 'found: a problem -> '.$entry; my ($label, $value) = ($entry =~ /^([^?]*)\?(.*)/); 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/; #filter incorrect radiobuttons (Bug in CABAReT Stage) - if($type eq 'radiobuttonresponse' && $value eq 'Off' ) { + if ($type eq 'radiobuttonresponse' && $value eq 'Off' ) { next; } my $submit = $part; $submit =~ s/part_(.*)/submit_$1/; - if($problems{$symb.$part}) { + if ($problems{$symb.$part}) { $problems{$symb.$part}{$HWVAL} = $value; } else { $problems{$symb.$part} = { 'resource' => $resource, @@ -262,30 +258,36 @@ sub grade_pdf { #$result .= $debug; $result .= '

'.&mt('Results of PDF Form problems').'

'; - $result .= &Apache::loncommon::start_data_table() - .&Apache::loncommon::start_data_table_header_row() - .''.&mt('Problem Name').'' - .''.&mt('Grading').'' - .&Apache::loncommon::start_data_table_header_row() - .&Apache::loncommon::end_data_table_header_row(); - - foreach my $key (sort (keys %problems)) { - my %problem = %{$problems{$key}}; - my ($problemname, $grade) = &grade_problem(%problem); - - $result .= &Apache::loncommon::start_data_table_row(); - $result .= "$problemname'.&mt('Problem Name').'' + .''.&mt('Grading').'' + .&Apache::loncommon::start_data_table_header_row() + .&Apache::loncommon::end_data_table_header_row(); + + foreach my $key (sort(keys(%problems))) { + my %problem = %{$problems{$key}}; + my ($problemname, $grade) = &grade_problem(%problem); + + $result .= &Apache::loncommon::start_data_table_row(); + $result .= "$problemname$grade"; + $result .= &Apache::loncommon::end_data_table_row(); } - $grade = &parse_grade_answer($grade); - $result .= "'>$grade"; - $result .= &Apache::loncommon::end_data_table_row(); + $result .= &Apache::loncommon::end_data_table(); + } else { + $result .= '

'. + &mt('As no gradable form items were found, no submissions have been recorded.'). + '

'; } - $result .= &Apache::loncommon::end_data_table(); - return $result; }