--- loncom/interface/lonpdfupload.pm	2009/05/16 00:28:38	1.6
+++ loncom/interface/lonpdfupload.pm	2009/05/23 04:07:09	1.10
@@ -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.10 2009/05/23 04:07:09 onken Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -89,7 +89,7 @@ sub handler() {
     );
 
     #&dumpenv($r); #debug -> prints the environment
-    $r->print("  </body> \n</html>\n");
+    $r->print(&Apache::loncommon::end_page());
     return OK;
 }
 
@@ -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 .= "<td>$problemname</td><td class='";
-        if($grade eq "EXACT_ANS") {
+        if($grade eq "EXACT_ANS" || $grade eq "APPROX_ANS") {
             $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();
     }
@@ -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;