[LON-CAPA-cvs] cvs: loncom /interface lonpdfupload.pm

raeburn raeburn at source.lon-capa.org
Fri Aug 28 17:57:17 EDT 2026


raeburn		Fri Aug 28 21:57:17 2026 EDT

  Modified files:              
    /loncom/interface	lonpdfupload.pm 
  Log:
  - Bug 6121 PDF form fields
    - Support grading of PDF form uploaded by student if encrypturl in effect.
    - Display "You have entered that answer before" if answer submitted via
      PDF was submitted previously (unless problemstatus parameter set to:
      "No, show no feedback at all").
  
  
Index: loncom/interface/lonpdfupload.pm
diff -u loncom/interface/lonpdfupload.pm:1.42 loncom/interface/lonpdfupload.pm:1.43
--- loncom/interface/lonpdfupload.pm:1.42	Thu Aug  6 19:34:24 2026
+++ loncom/interface/lonpdfupload.pm	Fri Aug 28 21:57:17 2026
@@ -1,7 +1,7 @@
 # The LearningOnline Network with CAPA
 # PDF Form Upload Handler
 #
-# $Id: lonpdfupload.pm,v 1.42 2026/08/06 19:34:24 raeburn Exp $
+# $Id: lonpdfupload.pm,v 1.43 2026/08/28 21:57:17 raeburn Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -782,7 +782,7 @@
                     }
                 }
                 $message = &grade_problem($symb,$part,$problemstatus,$practice,
-                                          $cathashref->{$symb}{$part});
+                                          $encrypted,$cathashref->{$symb}{$part});
             } else {
                 $message = $cathashref->{$symb}{$part};
             }
@@ -807,10 +807,18 @@
 }
 
 sub grade_problem {
-    my ($symb,$part,$problemstatus,$practice,$to_grade) = @_;
+    my ($symb,$part,$problemstatus,$practice,$encrypted,$to_grade) = @_;
     return unless (ref($to_grade) eq 'HASH');
     my %problem = %{$to_grade};
-    &Apache::loncommon::ssi_with_retries(&Apache::lonnet::clutter($problem{'resource'}), 5,%problem);
+    if ($encrypted) {
+        if (exists($problem{'resource'})) {
+            $problem{'resource'} = &Apache::lonenc::encrypted($problem{'resource'});
+        }
+        if (exists($problem{'symb'})) {
+            $problem{'symb'} = &Apache::lonenc::encrypted($problem{'symb'});
+        }
+    }
+    &Apache::loncommon::ssi_with_retries(&Apache::lonnet::clutter($problem{'resource'}),5,%problem);
     my %record;
     if ($practice) {
         $env{'request.state'} = "published";
@@ -844,7 +852,12 @@
     } else {
         return &mt('No information to report.');
     }
-    return '<span class="'.$css_class.'" style="padding: 3px;">'.$message.'</span>';
+    if ($previousmsg) {
+        $previousmsg = '<span class="LC_answer_previous" style="padding: 3px;">'
+                      .'&nbsp '.$previousmsg.'</span>';
+    }
+    return '<span class="'.$css_class.'" style="padding: 3px;">'.$message.'</span>'
+          .$previousmsg; 
 }
 
 sub pdfforms_blocked {




More information about the LON-CAPA-cvs mailing list