--- loncom/interface/lonpdfupload.pm 2009/05/16 00:28:38 1.6 +++ loncom/interface/lonpdfupload.pm 2009/05/23 05:26:15 1.11 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Publication Handler # -# $Id: lonpdfupload.pm,v 1.6 2009/05/16 00:28:38 bisitz Exp $ +# $Id: lonpdfupload.pm,v 1.11 2009/05/23 05:26:15 onken Exp $ # # Copyright Michigan State University Board of Trustees # @@ -89,7 +89,7 @@ sub handler() { ); #&dumpenv($r); #debug -> prints the environment - $r->print(" \n\n"); + $r->print(&Apache::loncommon::end_page()); return OK; } @@ -254,7 +254,7 @@ sub grade_pdf { $problems{$symb.$part}{$HWVAL} = $value; } else { $problems{$symb.$part} = { 'resource' => $resource, - 'symb' => &Apache::lonenc::encrypted($symb), + 'symb' => $symb, 'submitted' => $part, $submit => 'Answer', $HWVAL => $value}; @@ -270,15 +270,14 @@ sub grade_pdf { my %problem = %{$problems{$key}}; my ($problemname, $grade) = &grade_problem(%problem); - $problemname =~ s/(.*)\s*-\sPart\s0/$1/; #cut part when there is only one part in problem - $result .= &Apache::loncommon::start_data_table_row(); $result .= "$problemname$grade"; $result .= &Apache::loncommon::end_data_table_row(); } @@ -290,25 +289,41 @@ sub grade_pdf { sub grade_problem { my %problem = @_; + my ($title, $part) = (); - my ($content) = &Apache::loncommon::ssi_with_retries('/res/'. - $problem{'resource'}, 5, %problem); - - #TODO ? filter html response can't be the answer - # ! find an other way to get a problemname and Part - $content =~ s/.*class="LC_current_location".*>(.*)<\/td>.*/$1/g; - $content = $1; + &Apache::loncommon::ssi_with_retries('/res/'.$problem{'resource'}, 5, %problem); - my $part = $problem{submitted}; + $title = &Apache::lonnet::gettitle($problem{'symb'}); + $part = $problem{submitted}; $part =~ s/part_(.*)/$1/; - $content .= " - Part $part"; + unless($part eq '0') { + #add information about part number + $title .= " - Part $part"; + } my %problemhash = &Apache::lonnet::restore($problem{'symb'}); my $grade = $problemhash{"resource.$part.award"}; - return ($content, $grade); + return ($title, $grade); +} + +sub parse_grade_answer { + my ($shortcut) = @_; + my %answerhash = ('EXACT_ANS' => &mt('You are correct.'), + 'APPROX_ANS' => &mt('You are correct.'), + 'INCORRECT' => &mt('You are incorrect'), + ); + + foreach my $key (keys %answerhash) { + if($shortcut eq $key) { + return $answerhash{$shortcut}; + } + } + return &mt('See course contents for further information.'); + } + sub dumpenv { my $r = shift;